diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.ALL.nuspec b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.ALL.nuspec index 63b4b0fd30..39dd7ac9e5 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.ALL.nuspec +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.ALL.nuspec @@ -5,7 +5,7 @@ Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.All - 1.0.9 + 1.0.10 The ADLS adapter implementation for the Microsoft Common Data Model Object Model. Microsoft Corporation. diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.csproj b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.csproj index 2cfec0ecf1..4c158042ff 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.csproj +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.csproj @@ -2,7 +2,7 @@ netstandard2.0;net45;net462 - 1.0.9 + 1.0.10 The ADLS adapter implementation for the Microsoft Common Data Model Object Model. Microsoft Corporation diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.nuspec b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.nuspec index f0622c7237..edb154c0bc 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.nuspec +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.nuspec @@ -5,7 +5,7 @@ Microsoft.CommonDataModel.ObjectModel.Adapter.Adls - 1.0.9 + 1.0.10 The ADLS adapter implementation for the Microsoft Common Data Model Object Model. Microsoft Corporation. diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Storage/ADLSAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Storage/ADLSAdapter.cs index c18562f18f..1435d5f88d 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Storage/ADLSAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Adapter.Adls/Storage/ADLSAdapter.cs @@ -20,9 +20,13 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage using Newtonsoft.Json.Linq; using System.Diagnostics; using Microsoft.CommonDataModel.ObjectModel.Utilities; + using System.ComponentModel; + using System.IO; - public class ADLSAdapter : NetworkAdapter, StorageAdapter + public class ADLSAdapter : NetworkAdapter { + private const double ADLSDefaultTimeout = 6000; + private AuthenticationContext Context; /// @@ -86,9 +90,6 @@ private set /// public TokenProvider TokenProvider { get; set; } - /// - public string LocationHint { get; set; } - /// /// The map from corpus path to adapter path. /// @@ -109,6 +110,11 @@ private set /// private string subPath = ""; + /// + /// A cache for storing last modified times of file paths. + /// + private Dictionary fileModifiedTimeCache = new Dictionary(); + /// /// The predefined ADLS resource. /// @@ -131,10 +137,19 @@ private set internal const string Type = "adls"; + /// + /// The default constructor, a user has to apply JSON config after creating it this way. + /// + public ADLSAdapter() + { + this.httpClient = new CdmHttpClient(); + this.Timeout = TimeSpan.FromMilliseconds(ADLSAdapter.ADLSDefaultTimeout); + } + /// /// The ADLS constructor for clientId/secret authentication. /// - public ADLSAdapter(string hostname, string root, string tenant, string clientId, string secret) + public ADLSAdapter(string hostname, string root, string tenant, string clientId, string secret) : this() { this.Hostname = hostname; this.Root = root; @@ -142,47 +157,36 @@ public ADLSAdapter(string hostname, string root, string tenant, string clientId, this.ClientId = clientId; this.Secret = secret; this.Context = new AuthenticationContext("https://login.windows.net/" + this.Tenant); - this.httpClient = new CdmHttpClient(); - } - - /// - /// The default constructor, a user has to apply JSON config after creating it this way. - /// - public ADLSAdapter() - { - this.httpClient = new CdmHttpClient(); } /// /// The ADLS constructor for shared key authentication. /// - public ADLSAdapter(string hostname, string root, string sharedKey) + public ADLSAdapter(string hostname, string root, string sharedKey) : this() { this.Hostname = hostname; this.Root = root; this.SharedKey = sharedKey; - this.httpClient = new CdmHttpClient(); } /// /// The ADLS constructor for user-defined token provider. /// - public ADLSAdapter(string hostname, string root, TokenProvider tokenProvider) + public ADLSAdapter(string hostname, string root, TokenProvider tokenProvider) : this() { this.Hostname = hostname; this.Root = root; this.TokenProvider = tokenProvider; - this.httpClient = new CdmHttpClient(); } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { string url = this.CreateAdapterPath(corpusPath); @@ -195,13 +199,13 @@ public async Task ReadAsync(string corpusPath) } /// - public bool CanWrite() + public override bool CanWrite() { return true; } /// - public async Task WriteAsync(string corpusPath, string data) + public override async Task WriteAsync(string corpusPath, string data) { if (EnsurePath($"{this.Root}{corpusPath}") == false) { @@ -224,7 +228,7 @@ public async Task WriteAsync(string corpusPath, string data) } /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { var formattedCorpusPath = this.FormatCorpusPath(corpusPath); if (formattedCorpusPath == null) @@ -235,7 +239,7 @@ public string CreateAdapterPath(string corpusPath) if (adapterPaths.ContainsKey(formattedCorpusPath)) { return adapterPaths[formattedCorpusPath]; - } + } else { return $"https://{this.Hostname}{this.Root}{formattedCorpusPath}"; @@ -243,7 +247,7 @@ public string CreateAdapterPath(string corpusPath) } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { if (!string.IsNullOrEmpty(adapterPath)) { @@ -272,40 +276,51 @@ public string CreateCorpusPath(string adapterPath) return null; } - /// - public void ClearCache() + public override void ClearCache() { - return; + this.fileModifiedTimeCache.Clear(); } /// - public async Task ComputeLastModifiedTimeAsync(string corpusPath) + public override async Task ComputeLastModifiedTimeAsync(string corpusPath) { - var adapterPath = this.CreateAdapterPath(corpusPath); + if (this.IsCacheEnabled && fileModifiedTimeCache.TryGetValue(corpusPath, out DateTimeOffset time)) + { + return time; + } + else + { + var adapterPath = this.CreateAdapterPath(corpusPath); - var httpRequest = await this.BuildRequest(adapterPath, HttpMethod.Head); + var httpRequest = await this.BuildRequest(adapterPath, HttpMethod.Head); - try - { - using (var cdmResponse = await base.ExecuteRequest(httpRequest)) + try { - if (cdmResponse.StatusCode.Equals(HttpStatusCode.OK)) + using (var cdmResponse = await base.ExecuteRequest(httpRequest)) { - return cdmResponse.Content.Headers.LastModified; + if (cdmResponse.StatusCode.Equals(HttpStatusCode.OK)) + { + var lastTime = cdmResponse.Content.Headers.LastModified; + if (this.IsCacheEnabled && lastTime.HasValue) + { + this.fileModifiedTimeCache[corpusPath] = lastTime.Value; + } + return lastTime; + } } } + catch (HttpRequestException ex) + { + // We don't have standard logger here, so use one from system diagnostics + Debug.WriteLine($"ADLS file not found, skipping last modified time calculation for it. Exception: {ex}"); + } + + return null; } - catch (HttpRequestException ex) - { - // We don't have standard logger here, so use one from system diagnostics - Debug.WriteLine($"ADLS file not found, skipping last modified time calculation for it. Exception: {ex}"); - } - - return null; } /// - public async Task> FetchAllFilesAsync(string folderCorpusPath) + public override async Task> FetchAllFilesAsync(string folderCorpusPath) { if (folderCorpusPath == null) { @@ -346,7 +361,15 @@ public async Task> FetchAllFilesAsync(string folderCorpusPath) string nameWithoutSubPath = this.subPath.Length > 0 && name.ToString().StartsWith(this.subPath) ? name.ToString().Substring(this.subPath.Length + 1) : name.ToString(); - result.Add(this.FormatCorpusPath(nameWithoutSubPath)); + string path = this.FormatCorpusPath(nameWithoutSubPath); + result.Add(path); + + jObject.TryGetValue("lastModified", StringComparison.OrdinalIgnoreCase, out JToken lastModifiedTime); + + if (this.IsCacheEnabled && DateTimeOffset.TryParse(lastModifiedTime.ToString(), out DateTimeOffset offset)) + { + fileModifiedTimeCache[path] = offset; + } } } @@ -586,7 +609,7 @@ private bool EnsurePath(string pathFor) } /// - public string FetchConfig() + public override string FetchConfig() { var resultConfig = new JObject { @@ -620,7 +643,7 @@ public string FetchConfig() } /// - public void UpdateConfig(string config) + public override void UpdateConfig(string config) { if (config == null) { diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/CorpusTests.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/CorpusTests.cs index 941e81864a..bf4492bd69 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/CorpusTests.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/CorpusTests.cs @@ -55,5 +55,90 @@ public async Task TestComputeLastModifiedTimeAsync() await corpus.ComputeLastModifiedTimeAsync("local:/default.manifest.cdm.json"); } + + /// + /// Tests the FetchObjectAsync function with the StrictValidation off. + /// + [TestMethod] + public async Task TestStrictValidationOff() + { + var corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestStrictValidation"); + corpus.SetEventCallback(new EventCallback + { + Invoke = (level, message) => + { + // when the strict validation is disabled, there should be no reference validation. + // no error should be logged. + Assert.Fail(message); + } + }, CdmStatusLevel.Warning); + + // load with deferred imports. + var resOpt = new ResolveOptions() + { + StrictValidation = false + }; + await corpus.FetchObjectAsync("local:/doc.cdm.json", null, resOpt); + } + + /// + /// Tests the FetchObjectAsync function with the StrictValidation on. + /// + [TestMethod] + public async Task TestStrictValidationOn() + { + int errorCount = 0; + var corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestStrictValidation"); + corpus.SetEventCallback(new EventCallback + { + Invoke = (level, message) => + { + if (message.Contains("Unable to resolve the reference")) + { + errorCount++; + } + else + { + Assert.Fail(message); + } + + } + }, CdmStatusLevel.Error); + + // load with strict validation. + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + await corpus.FetchObjectAsync("local:/doc.cdm.json", null, resOpt); + Assert.AreEqual(1, errorCount); + + errorCount = 0; + corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestStrictValidation"); + corpus.SetEventCallback(new EventCallback + { + Invoke = (level, message) => + { + if (level == CdmStatusLevel.Warning && message.Contains("Unable to resolve the reference")) + { + errorCount++; + } + else + { + Assert.Fail(message); + } + + } + }, CdmStatusLevel.Warning); + + // load with strict validation and shallow validation. + resOpt = new ResolveOptions() + { + StrictValidation = true, + ShallowValidation = true + }; + await corpus.FetchObjectAsync("local:/doc.cdm.json", null, resOpt); + Assert.AreEqual(1, errorCount); + } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/DocumentDefinitionTests.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/DocumentDefinitionTests.cs index cc0d593ddd..b0263b31e3 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/DocumentDefinitionTests.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/DocumentDefinitionTests.cs @@ -37,8 +37,8 @@ public async Task TestCircularImportWithMoniker() docC.Imports.Add("B.cdm.json"); // forces docB to be indexed first. - await docB.IndexIfNeeded(new ResolveOptions()); - await docA.IndexIfNeeded(new ResolveOptions()); + await docB.IndexIfNeeded(new ResolveOptions(), true); + await docA.IndexIfNeeded(new ResolveOptions(), true); // should contain A, B and C. Assert.AreEqual(3, docA.ImportPriorities.ImportPriority.Count); @@ -77,7 +77,7 @@ public async Task TestDeeperCircularImportWithMoniker() docD.Imports.Add("C.cdm.json"); // indexIfNeeded will internally call prioritizeImports on every document. - await docA.IndexIfNeeded(new ResolveOptions()); + await docA.IndexIfNeeded(new ResolveOptions(), true); Assert.AreEqual(4, docA.ImportPriorities.ImportPriority.Count); @@ -85,14 +85,14 @@ public async Task TestDeeperCircularImportWithMoniker() MarkDocumentsToIndex(folder.Documents); // force docC to be indexed first, so the priorityList will be read from the cache this time. - await docC.IndexIfNeeded(new ResolveOptions()); - await docA.IndexIfNeeded(new ResolveOptions()); + await docC.IndexIfNeeded(new ResolveOptions(), true); + await docA.IndexIfNeeded(new ResolveOptions(), true); Assert.AreEqual(4, docA.ImportPriorities.ImportPriority.Count); // indexes the rest of the documents. - await docB.IndexIfNeeded(new ResolveOptions()); - await docD.IndexIfNeeded(new ResolveOptions()); + await docB.IndexIfNeeded(new ResolveOptions(), true); + await docD.IndexIfNeeded(new ResolveOptions(), true); Assert.IsFalse(docA.ImportPriorities.hasCircularImport); Assert.IsFalse(docB.ImportPriorities.hasCircularImport); @@ -122,8 +122,8 @@ public async Task TestMonikeredImportIsNotAdded() folder.Documents.Add(docC); // forces docB to be indexed first, so the priorityList will be read from the cache this time. - await docB.IndexIfNeeded(new ResolveOptions(docB)); - await docA.IndexIfNeeded(new ResolveOptions(docA)); + await docB.IndexIfNeeded(new ResolveOptions(docB), true); + await docA.IndexIfNeeded(new ResolveOptions(docA), true); // should only contain docA and docC, docB should be excluded. Assert.AreEqual(2, docA.ImportPriorities.ImportPriority.Count); diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/ImportsTests.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/ImportsTests.cs index da5f94aba7..baac03786e 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/ImportsTests.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/ImportsTests.cs @@ -38,13 +38,17 @@ public async Task TestEntityWithMissingNestedImportsAsync() var localAdapter = this.CreateStorageAdapterForTest("TestEntityWithMissingNestedImportsAsync"); var cdmCorpus = this.CreateTestCorpus(localAdapter); - var doc = await cdmCorpus.FetchObjectAsync("local:/missingNestedImport.cdm.json"); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + var doc = await cdmCorpus.FetchObjectAsync("local:/missingNestedImport.cdm.json", null, resOpt); Assert.IsNotNull(doc); Assert.AreEqual(1, doc.Imports.Count); - var firstImport = (doc.Imports[0] as CdmImport).Document; + var firstImport = doc.Imports[0].Document; Assert.AreEqual(1, firstImport.Imports.Count); Assert.AreEqual("notMissing.cdm.json", firstImport.Name); - var nestedImport = (firstImport.Imports[0] as CdmImport).Document; + var nestedImport = firstImport.Imports[0].Document; Assert.IsNull(nestedImport); } @@ -54,7 +58,11 @@ public async Task TestEntityWithSameImportsAsync() var localAdapter = this.CreateStorageAdapterForTest("TestEntityWithSameImportsAsync"); var cdmCorpus = this.CreateTestCorpus(localAdapter); - var doc = await cdmCorpus.FetchObjectAsync("local:/multipleImports.cdm.json"); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + var doc = await cdmCorpus.FetchObjectAsync("local:/multipleImports.cdm.json", null, resOpt); Assert.IsNotNull(doc); Assert.AreEqual(2, doc.Imports.Count); var firstImport = (doc.Imports[0] as CdmImport).Document; @@ -94,7 +102,12 @@ public async Task TestLoadingSameImportsAsync() var localAdapter = this.CreateStorageAdapterForTest("TestLoadingSameImportsAsync"); var cdmCorpus = this.CreateTestCorpus(localAdapter); - CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json"); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + + CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json", null, resOpt); Assert.IsNotNull(mainDoc); Assert.AreEqual(2, mainDoc.Imports.Count); @@ -119,7 +132,12 @@ public async Task TestLoadingSameMissingImportsAsync() var localAdapter = this.CreateStorageAdapterForTest("TestLoadingSameMissingImportsAsync"); var cdmCorpus = this.CreateTestCorpus(localAdapter); - CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json"); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + + CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json", null, resOpt); Assert.IsNotNull(mainDoc); Assert.AreEqual(2, mainDoc.Imports.Count); @@ -143,8 +161,13 @@ public async Task TestLoadingAlreadyPresentImportsAsync() var localAdapter = this.CreateStorageAdapterForTest("TestLoadingAlreadyPresentImportsAsync"); var cdmCorpus = this.CreateTestCorpus(localAdapter); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; + // load the first doc - CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json"); + CdmDocumentDefinition mainDoc = await cdmCorpus.FetchObjectAsync("mainEntity.cdm.json", null, resOpt); Assert.IsNotNull(mainDoc); Assert.AreEqual(1, mainDoc.Imports.Count); @@ -153,7 +176,7 @@ public async Task TestLoadingAlreadyPresentImportsAsync() // now load the second doc, which uses the same import // the import should not be loaded again, it should be the same object - CdmDocumentDefinition secondDoc = await cdmCorpus.FetchObjectAsync("secondEntity.cdm.json"); + CdmDocumentDefinition secondDoc = await cdmCorpus.FetchObjectAsync("secondEntity.cdm.json", null, resOpt); Assert.IsNotNull(secondDoc); Assert.AreEqual(1, secondDoc.Imports.Count); diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/AttributeContextUtil.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/AttributeContextUtil.cs index f74481daf1..16d68500e1 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/AttributeContextUtil.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/AttributeContextUtil.cs @@ -152,6 +152,8 @@ public static void ValidateAttributeContext(CdmCorpusDefinition corpus, string e string actualText = attrCtxUtil.GetAttributeContextStrings(resolvedEntity, resolvedEntity.AttributeContext); string expectedStringFilePath = Path.GetFullPath(Path.Combine(expectedOutputPath, $"AttrCtx_{entityName}.txt")); string expectedText = File.ReadAllText(expectedStringFilePath); + string actualStringFilePath = Path.GetFullPath(Path.Combine(expectedOutputPath, "..", "ActualOutput", $"AttrCtx_{entityName}.txt")); + File.WriteAllText(actualStringFilePath, actualText); Assert.AreEqual(expectedText, actualText); } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionExcludeTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionExcludeTest.cs new file mode 100644 index 0000000000..a14f1793ea --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionExcludeTest.cs @@ -0,0 +1,870 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +namespace Microsoft.CommonDataModel.ObjectModel.Tests.Cdm +{ + using Microsoft.CommonDataModel.ObjectModel.Cdm; + using Microsoft.CommonDataModel.ObjectModel.Enums; + using Microsoft.CommonDataModel.ObjectModel.Storage; + using Microsoft.CommonDataModel.ObjectModel.Utilities; + using Microsoft.VisualStudio.TestTools.UnitTesting; + using System.Collections.Generic; + using System.IO; + using System.Threading.Tasks; + + /// + /// A test class for testing the ExcludeAttributes operation in a projection as well as SelectsSomeAvoidNames in a resolution guidance + /// + [TestClass] + public class ProjectionExcludeTest + { + /// + /// All possible combinations of the different resolution directives + /// + private static List> resOptsCombinations = new List>() { + new List { }, + new List { "referenceOnly" }, + new List { "normalized" }, + new List { "structured" }, + new List { "referenceOnly", "normalized" }, + new List { "referenceOnly", "structured" }, + new List { "normalized", "structured" }, + new List { "referenceOnly", "normalized", "structured" }, + }; + + /// + /// Path to foundations + /// + private const string foundationJsonPath = "cdm:/foundations.cdm.json"; + + /// + /// The path between TestDataPath and TestName + /// + private string testsSubpath = Path.Combine("Cdm", "Projection", "ProjectionExcludeTest"); + + /// + /// Test for creating a projection with an ExcludeAttributes operation on an entity attribute using the object model + /// + [TestMethod] + public async Task TestEntityAttributeProjUsingObjectModel() + { + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestEntityAttributeProjUsingObjectModel"); + corpus.Storage.Mount("local", new LocalAdapter(TestHelper.GetActualOutputFolderPath(testsSubpath, "TestEntityAttributeProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.Storage.FetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = CreateEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = CreateProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.MakeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.ExcludeAttributes.Add("id"); + excludeAttrsOp.ExcludeAttributes.Add("date"); + projection.Operations.Add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.ExplicitReference = projection; + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.MakeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.Entity = projectionEntityRef; + entity.Attributes.Add(entityAttribute); + + // Resolve the entity + CdmEntityDefinition resolvedEntity = await entity.CreateResolvedEntityAsync($"Resolved_{entity.EntityName}.cdm.json", null, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("value", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// Test for creating a projection with an ExcludeAttributes operation on an entity definition using the object model + /// + [TestMethod] + public async Task TestEntityProjUsingObjectModel() + { + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestEntityProjUsingObjectModel"); + corpus.Storage.Mount("local", new LocalAdapter(TestHelper.GetActualOutputFolderPath(testsSubpath, "TestEntityProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.Storage.FetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = CreateEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = CreateProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.MakeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.ExcludeAttributes.Add("name"); + excludeAttrsOp.ExcludeAttributes.Add("value"); + projection.Operations.Add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.ExplicitReference = projection; + + // Set the entity's ExtendEntity to be the projection + entity.ExtendsEntity = projectionEntityRef; + + // Resolve the entity + CdmEntityDefinition resolvedEntity = await entity.CreateResolvedEntityAsync($"Resolved_{entity.EntityName}.cdm.json", null, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["name", "value"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("id", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("date", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// Test for creating nested projections with ExcludeAttributes operations using the object model + /// + [TestMethod] + public async Task TestNestedProjUsingObjectModel() + { + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestNestedProjUsingObjectModel"); + corpus.Storage.Mount("local", new LocalAdapter(TestHelper.GetActualOutputFolderPath(testsSubpath, "TestNestedProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.Storage.FetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = CreateEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = CreateProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.MakeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.ExcludeAttributes.Add("id"); + excludeAttrsOp.ExcludeAttributes.Add("date"); + projection.Operations.Add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.ExplicitReference = projection; + + // Create another projection that uses the previous projection as its source + CdmProjection projection2 = corpus.MakeObject(CdmObjectType.ProjectionDef); + projection2.Source = projectionEntityRef; + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp2 = corpus.MakeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp2.ExcludeAttributes.Add("value"); + projection2.Operations.Add(excludeAttrsOp2); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef2 = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionEntityRef2.ExplicitReference = projection2; + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.MakeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.Entity = projectionEntityRef2; + entity.Attributes.Add(entityAttribute); + + // Resolve the entity + CdmEntityDefinition resolvedEntity = await entity.CreateResolvedEntityAsync($"Resolved_{entity.EntityName}.cdm.json", null, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operations + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"], ["value"] + Assert.AreEqual(1, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + } + + /// + /// Test for creating a projection with an ExcludeAttributes operation and a condition using the object model + /// + [TestMethod] + public async Task TestConditionalProjUsingObjectModel() + { + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestConditionalProjUsingObjectModel"); + corpus.Storage.Mount("local", new LocalAdapter(TestHelper.GetActualOutputFolderPath(testsSubpath, "TestConditionalProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.Storage.FetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = CreateEntity(corpus, localRoot); + + // Create a projection with a condition that states the operation should only execute when the resolution directive is 'referenceOnly' + CdmProjection projection = CreateProjection(corpus, localRoot); + projection.Condition = "referenceOnly==true"; + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.MakeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.ExcludeAttributes.Add("id"); + excludeAttrsOp.ExcludeAttributes.Add("date"); + projection.Operations.Add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.ExplicitReference = projection; + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.MakeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.Entity = projectionEntityRef; + entity.Attributes.Add(entityAttribute); + + // Create resolution options with the 'referenceOnly' directive + ResolveOptions resOpt = new ResolveOptions(entity.InDocument); + resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet { "referenceOnly" }); + + // Resolve the entity with 'referenceOnly' + CdmEntityDefinition resolvedEntityWithReferenceOnly = await entity.CreateResolvedEntityAsync($"Resolved_{entity.EntityName}.cdm.json", resOpt, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"] + Assert.AreEqual(2, resolvedEntityWithReferenceOnly.Attributes.Count); + Assert.AreEqual("name", (resolvedEntityWithReferenceOnly.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("value", (resolvedEntityWithReferenceOnly.Attributes[1] as CdmTypeAttributeDefinition).Name); + + // Now resolve the entity with the 'structured' directive + resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet { "structured" }); + CdmEntityDefinition resolvedEntityWithStructured = await entity.CreateResolvedEntityAsync($"Resolved_{entity.EntityName}.cdm.json", resOpt, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: none, condition was false + Assert.AreEqual(4, resolvedEntityWithStructured.Attributes.Count); + Assert.AreEqual("id", (resolvedEntityWithStructured.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name", (resolvedEntityWithStructured.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("value", (resolvedEntityWithStructured.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("date", (resolvedEntityWithStructured.Attributes[3] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes on an entity attribute + /// + [TestMethod] + public async Task TestExcludeAttributes() + { + string testName = "TestExcludeAttributes"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an entity attribute + /// + [TestMethod] + public async Task TestSSAN() + { + string testName = "TestSSAN"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["PersonInfoName", "PersonInfoAge", "PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + // Excluded attributes: ["PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count, 2); + Assert.AreEqual("PersonInfoName", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("PersonInfoAge", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an entity attribute that has renameFormat = "{m}" + /// + [TestMethod] + public async Task TestSSANRename() + { + string testName = "TestSSANRename"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// A nested ExcludeAttributes operation in a single projection + /// + [TestMethod] + public async Task TestSingleNestedProj() + { + string testName = "TestSingleNestedProj"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// Nested projections with ExcludeAttributes + /// + [TestMethod] + public async Task TestNestedProj() + { + string testName = "TestNestedProj"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"], ["age"] + Assert.AreEqual(1, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + } + + /// + /// Multiple ExcludeAttributes in a single projection + /// + [TestMethod] + public async Task TestMultipleExclude() + { + string testName = "TestMultipleExclude"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["name", "age", "address"], ["address", "email"] + Assert.AreEqual(4, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes on an entity definition + /// + [TestMethod] + public async Task TestExtendsEntityProj() + { + string testName = "TestExtendsEntityProj"; + string entityName = "Child"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["phoneNumber", "email"] + Assert.AreEqual(3, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an entity definition + /// + [TestMethod] + public async Task TestExtendsEntity() + { + string testName = "TestExtendsEntity"; + string entityName = "Child"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["phoneNumber", "email"] + Assert.AreEqual(3, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes on a polymorphic source + /// + [TestMethod] + public async Task TestPolymorphicProj() + { + string testName = "TestPolymorphicProj"; + string entityName = "BusinessPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["emailId", "address", "isPrimary", "phoneId", "number", "socialId", "account"] + // Excluded attributes: ["socialId", "account"] + Assert.AreEqual(5, resolvedEntity.Attributes.Count); + Assert.AreEqual("emailId", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("isPrimary", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneId", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("number", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on a polymorphic source + /// + [TestMethod] + public async Task TestPolymorphic() + { + string testName = "TestPolymorphic"; + string entityName = "BusinessPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["emailId", "address", "isPrimary", "phoneId", "number", "socialId", "account"] + // Excluded attributes: ["socialId", "account"] + Assert.AreEqual(5, resolvedEntity.Attributes.Count); + Assert.AreEqual("emailId", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("isPrimary", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneId", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("number", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes on an array source + /// + [TestMethod] + public async Task TestArraySourceProj() + { + string testName = "TestArraySourceProj"; + string entityName = "FriendGroup"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["personCount", "name1", "age1", "address1", "phoneNumber1", "email1", ..., "email3"] (16 total) + // Excluded attributes: ["age1", "age2", "age3"] + Assert.AreEqual(13, resolvedEntity.Attributes.Count); + Assert.AreEqual("personCount", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name1", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address1", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber1", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email1", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name2", (resolvedEntity.Attributes[5] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address2", (resolvedEntity.Attributes[6] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber2", (resolvedEntity.Attributes[7] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email2", (resolvedEntity.Attributes[8] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name3", (resolvedEntity.Attributes[9] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address3", (resolvedEntity.Attributes[10] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber3", (resolvedEntity.Attributes[11] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email3", (resolvedEntity.Attributes[12] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an array source + /// + [TestMethod] + public async Task TestArraySource() + { + string testName = "TestArraySource"; + string entityName = "FriendGroup"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["GroupOfPeoplePersonCount", "GroupOfPeopleName1", "GroupOfPeopleAge1", "GroupOfPeopleAddress1", + // "GroupOfPeoplePhoneNumber1", "GroupOfPeopleEmail1", ..., "GroupOfPeopleEmail3"] (16 total) + // Excluded attributes: ["GroupOfPeopleAge1", "GroupOfPeopleAge2", "GroupOfPeopleAge3"] + Assert.AreEqual(13, resolvedEntity.Attributes.Count); + Assert.AreEqual("GroupOfPeoplePersonCount", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleName1", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleAddress1", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeoplePhoneNumber1", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleEmail1", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleName2", (resolvedEntity.Attributes[5] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleAddress2", (resolvedEntity.Attributes[6] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeoplePhoneNumber2", (resolvedEntity.Attributes[7] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleEmail2", (resolvedEntity.Attributes[8] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleName3", (resolvedEntity.Attributes[9] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleAddress3", (resolvedEntity.Attributes[10] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeoplePhoneNumber3", (resolvedEntity.Attributes[11] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("GroupOfPeopleEmail3", (resolvedEntity.Attributes[12] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an array source that has renameFormat = "{m}" + /// + [TestMethod] + public async Task TestArraySourceRename() + { + string testName = "TestArraySourceRename"; + string entityName = "FriendGroup"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["personCount", "name1", "age1", "address1", "phoneNumber1", "email1", ..., "email3"] (16 total) + // Excluded attributes: ["age1", "age2", "age3"] + Assert.AreEqual(13, resolvedEntity.Attributes.Count); + Assert.AreEqual("personCount", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name1", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address1", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber1", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email1", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name2", (resolvedEntity.Attributes[5] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address2", (resolvedEntity.Attributes[6] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber2", (resolvedEntity.Attributes[7] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email2", (resolvedEntity.Attributes[8] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("name3", (resolvedEntity.Attributes[9] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address3", (resolvedEntity.Attributes[10] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber3", (resolvedEntity.Attributes[11] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email3", (resolvedEntity.Attributes[12] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes with a condition + /// + [TestMethod] + public async Task TestConditionalProj() + { + string testName = "TestConditionalProj"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { "referenceOnly" }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + + CdmEntityDefinition resolvedEntity2 = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: none, condition was false + Assert.AreEqual(5, resolvedEntity2.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity2.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity2.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity2.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber", (resolvedEntity2.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email", (resolvedEntity2.Attributes[4] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes with an empty exclude attributes list + /// + [TestMethod] + public async Task TestEmptyExclude() + { + string testName = "TestEmptyExclude"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: [] + Assert.AreEqual(5, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("address", (resolvedEntity.Attributes[2] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("phoneNumber", (resolvedEntity.Attributes[3] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("email", (resolvedEntity.Attributes[4] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes on an entity with an attribute group + /// + [TestMethod] + public async Task TestGroupProj() + { + string testName = "TestGroupProj"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an entity with an attribute group + /// + [TestMethod] + public async Task TestGroup() + { + string testName = "TestGroup"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["PersonInfoName", "PersonInfoAge", "PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + // Excluded attributes: ["PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("PersonInfoName", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("PersonInfoAge", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// SelectsSomeAvoidNames on an entity with an attribute group that has renameFormat = "{m}" + /// + [TestMethod] + public async Task TestGroupRename() + { + string testName = "TestGroupRename"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.AreEqual(2, resolvedEntity.Attributes.Count); + Assert.AreEqual("name", (resolvedEntity.Attributes[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (resolvedEntity.Attributes[1] as CdmTypeAttributeDefinition).Name); + } + + /// + /// ExcludeAttributes with an entity attribute name on an inline entity reference that contains entity attributes + /// This is testing that, for the case of the structured directive, we can filter using the name of an entity attribute + /// in the inline entity reference to exclude the entire entity attribute group + /// + [TestMethod] + public async Task TestEANameProj() + { + string testName = "TestEANameProj"; + string entityName = "NewPerson"; + CdmCorpusDefinition corpus = GetCorpus(testName); + + foreach (List resOpt in resOptsCombinations) + { + await LoadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, new List { "structured" }); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email", "title", "company", "tenure"] + // Excluded attributes: ["OccupationInfo"] (name of entity attribute that contains "title", "company", "tenure") + Assert.AreEqual(1, resolvedEntity.Attributes.Count); // attribute group created because of structured directive + CdmAttributeGroupDefinition attGroup = (resolvedEntity.Attributes[0] as CdmAttributeGroupReference).ExplicitReference as CdmAttributeGroupDefinition; + Assert.AreEqual(5, attGroup.Members.Count); + Assert.AreEqual("name", (attGroup.Members[0] as CdmTypeAttributeDefinition).Name); + Assert.AreEqual("age", (attGroup.Members[1] as CdmTypeAttributeDefinition).Name, "age"); + Assert.AreEqual("address", (attGroup.Members[2] as CdmTypeAttributeDefinition).Name, "address"); + Assert.AreEqual("phoneNumber", (attGroup.Members[3] as CdmTypeAttributeDefinition).Name, "phoneNumber"); + Assert.AreEqual("email", (attGroup.Members[4] as CdmTypeAttributeDefinition).Name, "email"); + } + + /// + /// Creates a corpus + /// + private CdmCorpusDefinition GetCorpus(string testName) + { + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, testName); + return corpus; + } + + /// + /// Creates an entity + /// + private CdmEntityDefinition CreateEntity(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) + { + string entityName = "TestEntity"; + CdmEntityDefinition entity = corpus.MakeObject(CdmObjectType.EntityDef, entityName); + + CdmDocumentDefinition entityDoc = corpus.MakeObject(CdmObjectType.DocumentDef, $"{entityName}.cdm.json", false); + entityDoc.Imports.Add(foundationJsonPath); + entityDoc.Definitions.Add(entity); + localRoot.Documents.Add(entityDoc, entityDoc.Name); + + return entity; + } + + /// + /// Creates a source entity for a projection + /// + private CdmEntityDefinition CreateSourceEntity(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) + { + string entityName = "SourceEntity"; + CdmEntityDefinition entity = corpus.MakeObject(CdmObjectType.EntityDef, entityName); + + string attributeName1 = "id"; + CdmTypeAttributeDefinition attribute1 = corpus.MakeObject(CdmObjectType.TypeAttributeDef, attributeName1); + attribute1.DataType = corpus.MakeRef(CdmObjectType.DataTypeRef, "string", true); + entity.Attributes.Add(attribute1); + + string attributeName2 = "name"; + CdmTypeAttributeDefinition attribute2 = corpus.MakeObject(CdmObjectType.TypeAttributeDef, attributeName2); + attribute2.DataType = corpus.MakeRef(CdmObjectType.DataTypeRef, "string", true); + entity.Attributes.Add(attribute2); + + string attributeName3 = "value"; + CdmTypeAttributeDefinition attribute3 = corpus.MakeObject(CdmObjectType.TypeAttributeDef, attributeName3); + attribute3.DataType = corpus.MakeRef(CdmObjectType.DataTypeRef, "integer", true); + entity.Attributes.Add(attribute3); + + string attributeName4 = "date"; + CdmTypeAttributeDefinition attribute4 = corpus.MakeObject(CdmObjectType.TypeAttributeDef, attributeName4); + attribute4.DataType = corpus.MakeRef(CdmObjectType.DataTypeRef, "date", true); + entity.Attributes.Add(attribute4); + + CdmDocumentDefinition entityDoc = corpus.MakeObject(CdmObjectType.DocumentDef, $"{entityName}.cdm.json", false); + entityDoc.Imports.Add(foundationJsonPath); + entityDoc.Definitions.Add(entity); + localRoot.Documents.Add(entityDoc, entityDoc.Name); + + return entity; + } + + /// + /// Creates a projection + /// + private CdmProjection CreateProjection(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) + { + // Create an entity reference to use as the source of the projection + CdmEntityReference projectionSource = corpus.MakeObject(CdmObjectType.EntityRef, null); + projectionSource.ExplicitReference = CreateSourceEntity(corpus, localRoot); + + // Create the projection + CdmProjection projection = corpus.MakeObject(CdmObjectType.ProjectionDef); + projection.Source = projectionSource; + + return projection; + } + + /// + /// Loads an entity, resolves it, and then validates the generated attribute contexts + /// + private async Task LoadEntityForResolutionOptionAndSave(CdmCorpusDefinition corpus, string testName, string entityName, List resOpts) + { + string expectedOutputPath = TestHelper.GetExpectedOutputFolderPath(testsSubpath, testName); + string fileNameSuffix = TestUtils.GetResolutionOptionNameSuffix(resOpts); + + CdmEntityDefinition entity = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}"); + CdmEntityDefinition resolvedEntity = await TestUtils.GetResolvedEntity(corpus, entity, resOpts, true); + AttributeContextUtil.ValidateAttributeContext(corpus, expectedOutputPath, $"{entityName}{fileNameSuffix}", resolvedEntity); + } + } +} diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionFKTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionFKTest.cs index 9ea51db50b..1ac86df8e2 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionFKTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionFKTest.cs @@ -230,7 +230,7 @@ private async Task LoadEntityForResolutionOptionAndSave(string testName, string CdmManifestDefinition manifest = await corpus.FetchObjectAsync($"local:/default.manifest.cdm.json"); string expectedOutputPath = TestHelper.GetExpectedOutputFolderPath(testsSubpath, testName); - string fileNameSuffix = GetResolutionOptionNameSuffix(resOpts); + string fileNameSuffix = TestUtils.GetResolutionOptionNameSuffix(resOpts); CdmEntityDefinition entSalesForeignKeyProjection = await corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}", manifest); Assert.IsNotNull(entSalesForeignKeyProjection); @@ -239,23 +239,6 @@ private async Task LoadEntityForResolutionOptionAndSave(string testName, string AttributeContextUtil.ValidateAttributeContext(corpus, expectedOutputPath, $"{entityName}{fileNameSuffix}", resolvedSalesForeignKeyProjection); } - private string GetResolutionOptionNameSuffix(List resolutionOptions) - { - string fileNamePrefix = string.Empty; - - for (int i = 0; i < resolutionOptions.Count; i++) - { - fileNamePrefix = $"{fileNamePrefix}_{resolutionOptions[i]}"; - } - - if (string.IsNullOrWhiteSpace(fileNamePrefix)) - { - fileNamePrefix = "_default"; - } - - return fileNamePrefix; - } - private async Task SaveResolved(CdmCorpusDefinition corpus, CdmManifestDefinition manifest, string testName, CdmEntityDefinition inputEntity, List resolutionOptions) { HashSet roHashSet = new HashSet(); @@ -264,7 +247,7 @@ private async Task SaveResolved(CdmCorpusDefinition corpus, roHashSet.Add(resolutionOptions[i]); } - string fileNameSuffix = GetResolutionOptionNameSuffix(resolutionOptions); + string fileNameSuffix = TestUtils.GetResolutionOptionNameSuffix(resolutionOptions); string resolvedEntityName = $"Resolved_{inputEntity.EntityName}{fileNameSuffix}.cdm.json"; diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionMiscellaneousTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionMiscellaneousTest.cs index c453f0f1a8..c0f7da2012 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionMiscellaneousTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Projection/ProjectionMiscellaneousTest.cs @@ -17,8 +17,6 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Cdm [TestClass] public class ProjectionMiscellaneousTest { - private const string FoundationJsonPath = "cdm:/foundations.cdm.json"; - private static List> restOptsCombinations = new List>() { new HashSet { }, new HashSet { "referenceOnly" }, diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/CalculateRelationshipTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/CalculateRelationshipTest.cs index 0f9873ca1d..915e002cac 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/CalculateRelationshipTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/CalculateRelationshipTest.cs @@ -116,12 +116,8 @@ private void TestRun(string testName, string entityName) CdmEntityDefinition entity = corpus.FetchObjectAsync($"local:/{entityName}.cdm.json/{entityName}", manifest).GetAwaiter().GetResult(); Assert.IsNotNull(entity); CdmEntityDefinition resolvedEntity = TestUtils.GetResolvedEntity(corpus, entity, new List { "referenceOnly" }).GetAwaiter().GetResult(); - string actualAttrCtx = GetAttributeContextString(resolvedEntity, entityName, actualOutputFolder); - string expectedStringFilePath = Path.GetFullPath(Path.Combine(expectedOutputFolder, $"AttrCtx_{entityName}.txt")); - string expectedAttrCtx = File.ReadAllText(expectedStringFilePath); - - Assert.AreEqual(expectedAttrCtx, actualAttrCtx); + AttributeContextUtil.ValidateAttributeContext(corpus, expectedOutputFolder, entityName, resolvedEntity); corpus.CalculateEntityGraphAsync(manifest).GetAwaiter().GetResult(); manifest.PopulateManifestRelationshipsAsync().GetAwaiter().GetResult(); @@ -217,17 +213,5 @@ private static string PrintRelationship(CdmE2ERelationship relationship) return bldr.ToString(); } - - /// - /// Check the attribute context for these test scenarios - /// - /// - /// - /// - /// - private static string GetAttributeContextString(CdmEntityDefinition resolvedEntity, string entityName, string ActualOutputFolder) - { - return (new AttributeContextUtil()).GetAttributeContextStrings(resolvedEntity, resolvedEntity.AttributeContext); - } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/RelationshipTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/RelationshipTest.cs index 3e8bcf7274..8186da9536 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/RelationshipTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Cdm/Relationship/RelationshipTest.cs @@ -232,9 +232,6 @@ public async Task TestRelationshipToMultipleEntities() var corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestRelationshipToMultipleEntities"); var manifest = await corpus.FetchObjectAsync("local:/main.manifest.cdm.json"); - var ent = await corpus.FetchObjectAsync("local:/A.cdm.json/A"); - var resEnt = await ent.CreateResolvedEntityAsync("resA"); - await resEnt.InDocument.SaveAsAsync("resA.cdm.json"); await corpus.CalculateEntityGraphAsync(manifest); await manifest.PopulateManifestRelationshipsAsync(); @@ -254,6 +251,8 @@ private static void VerifyRelationships(CdmManifestDefinition manifest, List /// Test if the mini dyn resolved entities match /// - [TestMethod] + // [TestMethod] public async Task TestResolvedMiniDyn() { await this.ResolveSaveDebuggingFileAndAssert("TestResolvedMiniDyn", "MiniDyn"); @@ -268,7 +268,7 @@ private StorageAdapter CreateStorageAdapterConfigForTest(string testName) private async Task ResolveSaveDebuggingFileAndAssert(string testName, string manifestName, bool doesWriteDebuggingFiles = false) { Assert.IsNotNull(testName); - var result = (await this.ResolveEnvironment(testName, manifestName)); + var result = await this.ResolveEnvironment(testName, manifestName); if (doesWriteDebuggingFiles) { @@ -315,7 +315,10 @@ internal static async Task ListAllResolved(CdmCorpusDefinition cdmCorpus if (f.Entities != null) { if (spew != null) + { spew.SpewLine(f.FolderPath); + } + foreach (CdmEntityDeclarationDefinition entity in f.Entities) { string corpusPath; @@ -325,14 +328,21 @@ internal static async Task ListAllResolved(CdmCorpusDefinition cdmCorpus { corpusPath = cdmCorpus.Storage.CreateAbsoluteCorpusPath(ent.EntityPath, currentFile); ent = await cdmCorpus.FetchObjectAsync(corpusPath); - currentFile = (CdmObject)ent; + currentFile = ent; } corpusPath = cdmCorpus.Storage.CreateAbsoluteCorpusPath(((CdmLocalEntityDeclarationDefinition)ent).EntityPath, currentFile); - CdmEntityDefinition newEnt = await cdmCorpus.FetchObjectAsync(corpusPath); - ResolveOptions resOpt = new ResolveOptions() { WrtDoc = newEnt.InDocument, Directives = directives }; + ResolveOptions resOpt = new ResolveOptions() + { + StrictValidation = true + }; + CdmEntityDefinition newEnt = await cdmCorpus.FetchObjectAsync(corpusPath, null, resOpt); + resOpt.WrtDoc = newEnt.InDocument; + resOpt.Directives = directives; ResolvedEntity resEnt = new ResolvedEntity(resOpt, newEnt); if (spew != null) + { resEnt.Spew(resOpt, spew, " ", true); + } } } if (f.SubManifests != null) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Persistence/CdmFolder/TypeAttribute/TypeAttributeTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Persistence/CdmFolder/TypeAttribute/TypeAttributeTest.cs index 9e9376ca6a..f476a347e7 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Persistence/CdmFolder/TypeAttribute/TypeAttributeTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Persistence/CdmFolder/TypeAttribute/TypeAttributeTest.cs @@ -61,14 +61,14 @@ public void TestNonNullDefaultValueAttribute() [TestMethod] public async Task TestReadingIsPrimaryKey() { - var testInputPath = TestHelper.GetInputFolderPath(testsSubpath, "TestReadingIsPrimaryKey"); - CdmCorpusDefinition corpus = new CdmCorpusDefinition(); - corpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning); - corpus.Storage.Mount("local", new LocalAdapter(testInputPath)); - corpus.Storage.DefaultNamespace = "local"; + CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestReadingIsPrimaryKey"); + var resOpt = new ResolveOptions() + { + StrictValidation = true + }; // Read from an unresolved entity schema. - CdmEntityDefinition entity = await corpus.FetchObjectAsync("local:/TeamMembership.cdm.json/TeamMembership"); + CdmEntityDefinition entity = await corpus.FetchObjectAsync("local:/TeamMembership.cdm.json/TeamMembership", null , resOpt); CdmAttributeGroupReference attributeGroupRef = (CdmAttributeGroupReference)entity.Attributes[0]; CdmAttributeGroupDefinition attributeGroup = (CdmAttributeGroupDefinition)attributeGroupRef.ExplicitReference; CdmTypeAttributeDefinition typeAttribute = (CdmTypeAttributeDefinition)attributeGroup.Members[0]; @@ -81,7 +81,7 @@ public async Task TestReadingIsPrimaryKey() Assert.AreEqual("TeamMembership/(resolvedAttributes)/teamMembershipId", isIdentifiedBy1.Arguments[0].Value); // Read from a resolved entity schema. - CdmEntityDefinition resolvedEntity = await corpus.FetchObjectAsync("local:/TeamMembership_Resolved.cdm.json/TeamMembership"); + CdmEntityDefinition resolvedEntity = await corpus.FetchObjectAsync("local:/TeamMembership_Resolved.cdm.json/TeamMembership", null, resOpt); CdmTypeAttributeDefinition resolvedTypeAttribute = (CdmTypeAttributeDefinition)resolvedEntity.Attributes[0]; Assert.IsTrue((bool)resolvedTypeAttribute.IsPrimaryKey); diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Storage/MockAdlsAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Storage/MockAdlsAdapter.cs index 0c30d8bff7..de4b2084c5 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Storage/MockAdlsAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Storage/MockAdlsAdapter.cs @@ -15,7 +15,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Storage using System.Text; using System.Threading.Tasks; - public class MockADLSAdapter : NetworkAdapter, StorageAdapter + public class MockADLSAdapter : NetworkAdapter { private AuthenticationContext Context; @@ -107,13 +107,13 @@ public MockADLSAdapter() } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { String url = this.CreateAdapterPath(corpusPath); var request = await this.BuildRequest(url, HttpMethod.Get); @@ -124,13 +124,13 @@ public async Task ReadAsync(string corpusPath) } /// - public bool CanWrite() + public override bool CanWrite() { return true; } /// - public async Task WriteAsync(string corpusPath, string data) + public override async Task WriteAsync(string corpusPath, string data) { if (ensurePath($"{this.Root}{corpusPath}") == false) { @@ -153,13 +153,13 @@ public async Task WriteAsync(string corpusPath, string data) } /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { return $"https://{this.Hostname}{this.Root}{corpusPath}"; } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { var prefix = $"https://{this.Hostname}{this.Root}"; if (!string.IsNullOrEmpty(adapterPath) && adapterPath.StartsWith(prefix)) @@ -169,27 +169,7 @@ public string CreateCorpusPath(string adapterPath) return null; } - - /// - public void ClearCache() - { - return; - } - - /// - public async Task ComputeLastModifiedTimeAsync(string corpusPath) - { - // TODO - return null; - } - - /// - public async Task> FetchAllFilesAsync(string currFullPath) - { - // TODO - return null; - } - + /// /// Returns the headers with the applied shared key. /// @@ -337,15 +317,5 @@ private bool ensurePath(string pathFor) // Folders are only of virtual kind in Azure Storage return true; } - - string StorageAdapter.FetchConfig() - { - throw new NotImplementedException(); - } - - public void UpdateConfig(string configs) - { - throw new NotImplementedException(); - } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json new file mode 100644 index 0000000000..87e198dc4b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json @@ -0,0 +1,9 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "definitions": [ + { + "traitName": "is.CDM", + "extendsTrait": "is" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ForwardCompatibilityTest/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ForwardCompatibilityTest/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt index b5a2d38fb9..8d35725227 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ForwardCompatibilityTest/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ForwardCompatibilityTest/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt @@ -1,4 +1,9 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource @@ -6,12 +11,21 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/p Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/extends/CdmEntity Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/A Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B/Resolved_TestAllOperations/hasAttributes/B/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey -output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C/Resolved_TestAllOperations/hasAttributes/C/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/B +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/C +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/A_FK is.linkedEntity.identifier [Parameter (Name / DefaultValue): entityReferences / ] diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..4831c64bd8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..84a40c8dc5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..d140e00555 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..b85e4c00c5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..11db47873b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..036d38e697 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..79db84eb00 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..102fb216c4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..b4a669e6a7 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..9f349f008a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..22060cee5b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..c11c4a8497 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4a4da7a1bb --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7f03aa81eb --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d6913cca9b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..760d1c3e43 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/FriendGroup.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..21779b5f13 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/FriendGroup.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "GroupOfPeopleAge1", + "GroupOfPeopleAge2", + "GroupOfPeopleAge3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/ThreeMusketeers.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySource/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..c3ba904ee2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..c3dc03b884 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..10b6473ec9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..c2103b95b1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9dfc44639b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1a91399daa --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..770bfd4ae9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..4947e14174 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..183ddcde77 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..210a65544c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..8b2a5c2584 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..ccbf84132c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..1cc7f833ef --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b30ba00329 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..59b667f9bf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..746dd6979a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/FriendGroup.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..66a79be952 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/FriendGroup.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": { + "source": "ThreeMusketeers", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age1", + "age2", + "age3" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/ThreeMusketeers.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..898bb474ec --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..29617cf7d4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..ab440dd038 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..0a861e2127 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5633d36d1c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..817e308f12 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..731f8e007a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..acf59a37de --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..14b0e7d09f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..50d90d7ba8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..604ca61bbf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..6118ae63e2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2a48166864 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..91214b136e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..fc811c2dbc --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..c665ab52e9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/FriendGroup.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..e5dff68336 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/FriendGroup.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "age1", + "age2", + "age3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/ThreeMusketeers.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestArraySourceRename/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..e06f461e76 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/NewPerson.cdm.json @@ -0,0 +1,34 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "condition": "referenceOnly", + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestConditionalProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..ae71cfca00 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..275e07c722 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..7486d85c04 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..0be72be12d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..dcaaf42f73 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..21401b014e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..07e283469d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..56ff3c9fbd --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..7339589bec --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..2fad4d8b6e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..065822abbd --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..8114b48f53 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..3fd691fc03 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b78cae5a99 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..508a3c40db --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7ceeb71428 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..54b55ef957 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/NewPerson.cdm.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "PersonInfoAge", + "OccupationInfo" + ] + } + ], + "source": { + "entityReference": { + "entityName": "EmployedPerson", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person" + }, + { + "name": "OccupationInfo", + "entity": "Occupation" + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Occupation.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Occupation.cdm.json new file mode 100644 index 0000000000..9441ce0cc3 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Occupation.cdm.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Occupation", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "title", + "dataType": "string" + }, + { + "name": "company", + "dataType": "string" + }, + { + "name": "tenure", + "dataType": "integer" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..1adcb29194 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + }, + { + "corpusPath": "Occupation.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..6f2ef614b4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEANameProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + }, + { + "type": "LocalEntity", + "entityName": "Occupation", + "entitySchema": "Occupation.cdm.json/Occupation" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..bb752f3cc4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..648b6d88e9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..4d102cd18e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..e4d2986fd3 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..566488859d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6cb61844a2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f1e10a7a5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..2266dd17bd --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..f4db93b754 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/NewPerson.cdm.json @@ -0,0 +1,30 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestEmptyExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..a5397f4d5e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8cc3fa382e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..dc9b62925b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..54a335f38a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..316f331452 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..722a7c9220 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9f7e5f4c8c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0bffae9a4e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExcludeAttributes/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..7820e5d230 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,27 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..a5a4fc3457 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..d8062ffaea --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..293fd0e803 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..3275ccfc32 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0027dd0ba1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..6e10fce409 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..b2700722da --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..2aa84f4dc2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..c136af46ae --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..44574b5484 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..a4375d62ee --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2162871628 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..34b94171d0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6c3262f9c0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..c2b555f07e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Child.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Child.cdm.json new file mode 100644 index 0000000000..f74d9c8658 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Child.cdm.json @@ -0,0 +1,24 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": "Person", + "extendsEntityResolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "phoneNumber", + "email" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntity/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..aa4d5724b8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,29 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..e75f2812fa --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..bfde6d8958 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..4f9b2716e3 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..8bd9977a8b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..85807ee4aa --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..7bfedba49c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..73b340e97a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..ec027309de --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..dc7c397538 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..2846bba70a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..fe1185d9bb --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..9922350158 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..0d1fbbc8a1 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..f12d68507f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..0eacc29b9c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Child.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Child.cdm.json new file mode 100644 index 0000000000..534ad12da8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Child.cdm.json @@ -0,0 +1,27 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "phoneNumber", + "email" + ] + } + ] + }, + "hasAttributes": [] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestExtendsEntityProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..5accda3e69 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..1b20db6c36 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a8e5ab2706 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ade1e391cf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..562773ca9d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0eea58de31 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..c694ddc17b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..abf7743cc5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..b9ab1cbc76 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e5d1012a09 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4c1a52b3b7 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..67d84f5d7b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..65a9f1a779 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..9533378728 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d7d54a2b8b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..538d294544 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroup/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..cfc51ccedd --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..385731083f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..20b9b8feb7 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..d2a23cd44b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..54584aaa2c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..97c6b4eb63 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..2cc586a301 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..f42f28ebf4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..a257a3eb4a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..acb2f79773 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1295a201e0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b5542e967f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..94c2ba9cde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f903baacc --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..344a51646c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7d9f31af9d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..4881a6010a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b2dc538889 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a491730a37 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..f56801a5cf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..239574fa4b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6039be79e8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..039e6b5578 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..d484336523 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3201eeca56 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..9d3592bbca --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..c88b5f631c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d36ffe88bf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f40ad2bea8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7d8a767c83 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05bfdc6fc7 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..da56da271d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestGroupRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d37d09bd1d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8de0719c8f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e58d8be648 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..35ccd9ad3c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9816c7ced0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..b3b5be0d6a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..21f29e779e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..5012e46b82 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..c5c4025d78 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..7b492f672f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..d221c79165 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..42a0781548 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..cf960fd2b2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4571e90f54 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..5518c2e89a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0f676a9581 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..5b60c09ba7 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/NewPerson.cdm.json @@ -0,0 +1,40 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "email" + ] + }, + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "name", + "age", + "address" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestMultipleExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6c4f9ca606 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..043cdb5fee --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..0368d777c6 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..2010771295 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5fe3afa5c9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1e6f94af37 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..170a831d6b --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..4cf1ac2683 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6a1a157456 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..4d770b8336 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9c2620219c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d8a353b931 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f850cb0fc8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..196ed28794 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..a950eb4afa --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9891b7ad2e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..136f80d8b2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age" + ] + } + ], + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": "Person" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..ea8d2baad5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..ae777a8df9 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..3e8af81c67 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..aa3c262344 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..0f8eb12a69 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6b69860f3f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..ba961ca94c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..37af52eeef --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..215e7508cf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..40415a5647 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4f93e5d946 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b46819e324 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..ad5bed2eba --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..2afbbeeb2c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c8f7323979 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..17d9739e7e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/BusinessPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..e9778bd0f5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/BusinessPerson.cdm.json @@ -0,0 +1,57 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "socialId", + "account" + ] + } + }, + "entity": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Email.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Phone.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Social.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphic/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..e6a0e5f1c5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..dd664dda22 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..cb2be99126 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..f2789bf951 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..820aafe34e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..342475d633 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..4d778feb9f --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..4eb6571a18 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..5160ce6bd6 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..d7fff5da7d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1af2781a85 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..68e5e7c86e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..71250ebb5e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4bce14be16 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6958c9a099 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..967537f9b4 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/BusinessPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..505dc92539 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/BusinessPerson.cdm.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "isPolymorphicSource": true, + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "socialId", + "account" + ] + } + ], + "source": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Email.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Phone.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Social.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestPolymorphicProj/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d29efce605 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b7ddf27b38 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..18e58c7c72 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..67a0db86d6 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9ea535b310 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..96f03ce507 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..27551e14b2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..c769fee3f3 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6125d3161e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..27241ede7d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..91a8a24c34 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..698cffbe26 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4c7e071ff2 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..455731e731 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c0a6fc7340 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0983b02b7d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSAN/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..361d8cec5c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..9176b98b8c --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e8d2e7055d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..27b209abde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..421a22988e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..ef7aaa7187 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..893733ccff --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..9bc814b201 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..fee00cee12 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..6e99bf2c24 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..62e3a6c4aa --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..057aa581c5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..eb02b901c8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..92e2f2d32a --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..00ac14e06d --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..b879f69aec --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSSANRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6033a16a90 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..a599777fe3 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..87e533abde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ed9a874617 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..aef9bf0cab --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..c6deb403d8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..fc49d9bba8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..af5466cc19 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3637ced643 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..f9068f1663 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9167121ea5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..72481caa02 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..b9f451e757 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..cf6cae27c8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..7ff32587fe --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9bd71210bf --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/NewPerson.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..a88d635959 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,41 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": { + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": { + "source": { + "source": "Person" + } + } + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/Person.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/_allImports.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/default.manifest.cdm.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Cdm/Projection/ProjectionExcludeTest/TestSingleNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Persistence/ModelJson/ModelJsonExtensibility/TestModelJsonExtensibility/ExpectedOutput/SerializerTesting-model.json b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Persistence/ModelJson/ModelJsonExtensibility/TestModelJsonExtensibility/ExpectedOutput/SerializerTesting-model.json index ac90e8a1cf..e2dd8b069e 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Persistence/ModelJson/ModelJsonExtensibility/TestModelJsonExtensibility/ExpectedOutput/SerializerTesting-model.json +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestData/Persistence/ModelJson/ModelJsonExtensibility/TestModelJsonExtensibility/ExpectedOutput/SerializerTesting-model.json @@ -12,7 +12,7 @@ ], "partitions": [ { - "refreshTime": "2018-11-14T19:37:55.4375154Z", + "refreshTime": "2018-11-14T19:37:55.4375154+00:00", "location": "http://contoso.com/Account/partition.csv", "name": "Sample Partition", "pbi:partitionDataQuery": "", diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestStorageAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestStorageAdapter.cs index 4e28662d93..d02584491a 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestStorageAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestStorageAdapter.cs @@ -10,7 +10,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests using System.Collections.Generic; using System.Threading.Tasks; - public class TestStorageAdapter : StorageAdapter + public class TestStorageAdapter : StorageAdapterBase { public ConcurrentDictionary Target { get; } public string LocationHint { get; set; } @@ -20,12 +20,13 @@ public TestStorageAdapter(ConcurrentDictionary target) this.Target = target; } - public bool CanWrite() + /// + public override bool CanWrite() { return true; } - public Task WriteAsync(string corpusPath, string data) + public override Task WriteAsync(string corpusPath, string data) { // ensure that the path exists before trying to write the file string path = this.CreateAdapterPath(corpusPath); @@ -35,55 +36,11 @@ public Task WriteAsync(string corpusPath, string data) return Task.CompletedTask; } - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { if (corpusPath.Contains(":")) corpusPath = StringUtils.Slice(corpusPath, corpusPath.IndexOf(":") + 1); return corpusPath; } - - public bool CanRead() - { - throw new NotImplementedException(); - } - - public void ClearCache() - { - throw new NotImplementedException(); - } - - public Task> FetchAllFilesAsync(string folderCorpusPath) - { - throw new NotImplementedException(); - } - - public Task GetLastModifiedTime(string adapterPath) - { - throw new NotImplementedException(); - } - - public string CreateCorpusPath(string adapterPath) - { - throw new NotImplementedException(); - } - - public Task ReadAsync(string corpusPath) - { - throw new NotImplementedException(); - } - - public Task ComputeLastModifiedTimeAsync(string corpusPath) - { - throw new NotImplementedException(); - } - - string StorageAdapter.FetchConfig() - { - return ""; - } - - public void UpdateConfig(string configs) - { - } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestUtils.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestUtils.cs index 32c9e1bcfc..fb615affde 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestUtils.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/TestUtils.cs @@ -11,17 +11,27 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests class TestUtils { /// - /// Get resolved entity + /// Resolves an entity /// - /// - /// - /// - /// - public static async Task GetResolvedEntity(CdmCorpusDefinition corpus, CdmEntityDefinition inputEntity, List resolutionOptions) + /// The corpus + /// The entity to resolve + /// The resolution options + /// Whether to add the resolution options as part of the resolved entity name + public static async Task GetResolvedEntity(CdmCorpusDefinition corpus, CdmEntityDefinition inputEntity, List resolutionOptions, bool addResOptToName = false) { HashSet roHashSet = new HashSet(resolutionOptions); - string resolvedEntityName = $"Resolved_{inputEntity.EntityName}"; + string resolvedEntityName = ""; + + if (addResOptToName) + { + string fileNameSuffix = GetResolutionOptionNameSuffix(resolutionOptions); + resolvedEntityName = $"Resolved_{inputEntity.EntityName}{fileNameSuffix}"; + } + else + { + resolvedEntityName = $"Resolved_{inputEntity.EntityName}"; + } ResolveOptions ro = new ResolveOptions(inputEntity.InDocument) { @@ -30,9 +40,30 @@ public static async Task GetResolvedEntity(CdmCorpusDefinit CdmFolderDefinition resolvedFolder = corpus.Storage.FetchRootFolder("output"); CdmEntityDefinition resolvedEntity = await inputEntity.CreateResolvedEntityAsync(resolvedEntityName, ro, resolvedFolder); - resolvedEntity.InDocument.SaveAsAsync($"{resolvedEntityName}.cdm.json", saveReferenced: false).GetAwaiter().GetResult(); + await resolvedEntity.InDocument.SaveAsAsync($"{resolvedEntityName}.cdm.json", saveReferenced: false); return resolvedEntity; } + + /// + /// Returns a suffix that contains the file name and resolution option used + /// + /// The resolution options + public static string GetResolutionOptionNameSuffix(List resolutionOptions) + { + string fileNamePrefix = string.Empty; + + for (int i = 0; i < resolutionOptions.Count; i++) + { + fileNamePrefix = $"{fileNamePrefix}_{resolutionOptions[i]}"; + } + + if (string.IsNullOrWhiteSpace(fileNamePrefix)) + { + fileNamePrefix = "_default"; + } + + return fileNamePrefix; + } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Utilities/HttpClient/CdmHttpClientTest.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Utilities/HttpClient/CdmHttpClientTest.cs index a8958ceffa..f35c579c33 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Utilities/HttpClient/CdmHttpClientTest.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel.Tests/Utilities/HttpClient/CdmHttpClientTest.cs @@ -48,7 +48,8 @@ private async Task method2(HttpRequestMessage request, Canc method2ExecutedCount++; return await Task.FromResult(responseMessage); - } else + } + else { // Wait some time. Thread.Sleep(2000); @@ -153,13 +154,13 @@ public void TestMaximumTimeout() var cdmHttpRequest = new CdmHttpRequest("/folder2") { Timeout = TimeSpan.FromSeconds(1), - MaximumTimeout = TimeSpan.FromSeconds(6), - NumberOfRetries = 3 + MaximumTimeout = TimeSpan.FromSeconds(3), + NumberOfRetries = 2 }; Func func = async () => await cdmHttpClient.SendAsync(cdmHttpRequest, DefaultGetWaitTime); - func.Should().Throw("Request timeout."); + func.Should().Throw("Maximum timeout exceeded."); } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmCorpusDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmCorpusDefinition.cs index f98c8ac946..71e1b0cebe 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmCorpusDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmCorpusDefinition.cs @@ -76,16 +76,12 @@ public class CdmCorpusDefinition internal IDictionary DefinitionReferenceSymbols { get; set; } - private IDictionary DefinitionWrtTag { get; set; } - private IDictionary EmptyRts { get; set; } private IDictionary NamespaceFolders { get; set; } internal CdmManifestDefinition rootManifest { get; set; } - internal IDictionary objectCache { get; set; } - internal DocumentLibrary documentLibrary; private IDictionary> OutgoingRelationships; @@ -103,13 +99,11 @@ public CdmCorpusDefinition() { this.SymbolDefinitions = new Dictionary>(); this.DefinitionReferenceSymbols = new Dictionary(); - this.DefinitionWrtTag = new Dictionary(); this.EmptyRts = new Dictionary(); this.NamespaceFolders = new Dictionary(); this.OutgoingRelationships = new Dictionary>(); this.IncomingRelationships = new Dictionary>(); this.resEntMap = new Dictionary(); - this.objectCache = new Dictionary(); this.documentLibrary = new DocumentLibrary(); @@ -136,7 +130,7 @@ public async Task CreateRootManifestAsync(string corpusPa { if (this.IsPathManifestDocument(corpusPath)) { - this.rootManifest = (CdmManifestDefinition)await this._FetchObjectAsync(corpusPath, null, false); + this.rootManifest = await this.FetchObjectAsync(corpusPath); return this.rootManifest; } return null; @@ -234,7 +228,7 @@ internal DocsResult DocsForSymbol(ResolveOptions resOpt, CdmDocumentDefinition w // if more monikers, keep looking if (result.NewSymbol.IndexOf("/") >= 0 && (usingWrtDoc || !this.SymbolDefinitions.ContainsKey(result.NewSymbol))) { - DocsResult currDocsResult = DocsForSymbol(resOpt, wrtDoc, tempMonikerDoc, result.NewSymbol); + DocsResult currDocsResult = this.DocsForSymbol(resOpt, wrtDoc, tempMonikerDoc, result.NewSymbol); if (currDocsResult.DocList == null && fromDoc == wrtDoc) { // we are back at the top and we have not found the docs, move the wrtDoc down one level @@ -269,6 +263,15 @@ internal CdmObjectBase ResolveSymbolReference(ResolveOptions resOpt, CdmDocument return null; // no way to figure this out CdmDocumentDefinition wrtDoc = resOpt.WrtDoc as CdmDocumentDefinition; + var indexTask = wrtDoc.IndexIfNeeded(resOpt, true); + indexTask.Wait(); + // if the wrtDoc needs to be indexed (like it was just modified) then do that first + if (!indexTask.Result) + { + Logger.Error(nameof(CdmEntityDefinition), this.Ctx as ResolveContext, "Couldn't index source document.", nameof(ResolveSymbolReference)); + return null; + } + // get the array of documents where the symbol is defined DocsResult symbolDocsResult = this.DocsForSymbol(resOpt, wrtDoc, fromDoc, symbolDef); CdmDocumentDefinition docBest = symbolDocsResult.DocBest; @@ -278,20 +281,29 @@ internal CdmObjectBase ResolveSymbolReference(ResolveOptions resOpt, CdmDocument { // add this symbol to the set being collected in resOpt, we will need this when caching if (resOpt.SymbolRefSet == null) + { resOpt.SymbolRefSet = new SymbolSet(); + } + resOpt.SymbolRefSet.Add(symbolDef); // for the given doc, there is a sorted list of imported docs (including the doc itself as item 0). // find the lowest number imported document that has a definition for this symbol if (wrtDoc.ImportPriorities == null) + { return null; + } IDictionary importPriority = wrtDoc.ImportPriorities.ImportPriority; if (importPriority.Count == 0) + { return null; + } if (docBest == null) + { docBest = FetchPriorityDocument(docs, importPriority); + } } // perhaps we have never heard of this symbol in the imports for this document? @@ -475,33 +487,41 @@ internal string CreateDefinitionCacheTag(ResolveOptions resOpt, CdmObjectBase de // since this is an expensive operation, actually cache the sorted list associated with this object and wrtDoc // easy stuff first - string thisId = null; + string thisId; string thisPath = (definition.ObjectType == CdmObjectType.ProjectionDef) ? definition.DeclaredPath.Replace("/", "") : definition.AtCorpusPath; if (!string.IsNullOrEmpty(pathToDef) && notKnownToHaveParameters) + { thisId = pathToDef; + } else + { thisId = definition.Id.ToString(); + } StringBuilder tagSuffix = new StringBuilder(); tagSuffix.AppendFormat("-{0}-{1}", kind, thisId); tagSuffix.AppendFormat("-({0})", resOpt.Directives != null ? resOpt.Directives.GetTag() : string.Empty); if (!string.IsNullOrEmpty(extraTags)) + { tagSuffix.AppendFormat("-{0}", extraTags); + } // is there a registered set? (for the objectdef, not for a reference) of the many symbols involved in defining this thing (might be none) var objDef = definition.FetchObjectDefinition(resOpt); SymbolSet symbolsRef = null; if (objDef != null) { - string key = CdmCorpusDefinition.CreateCacheKeyFromObject(objDef, kind); + string key = CreateCacheKeyFromObject(objDef, kind); this.DefinitionReferenceSymbols.TryGetValue(key, out symbolsRef); } if (symbolsRef == null && thisPath != null) { // every symbol should depend on at least itself - SymbolSet symSetThis = new SymbolSet(); - symSetThis.Add(thisPath); + SymbolSet symSetThis = new SymbolSet + { + thisPath + }; this.RegisterDefinitionReferenceSymbols(definition, kind, symSetThis); symbolsRef = symSetThis; } @@ -754,11 +774,11 @@ internal static string CreateCacheKeyFromObject(CdmObject definition, string kin internal static CdmDocumentDefinition FetchPriorityDocument(List docs, IDictionary importPriority) { CdmDocumentDefinition docBest = null; - int indexBest = Int32.MaxValue; + int indexBest = int.MaxValue; foreach (CdmDocumentDefinition docDefined in docs) { // is this one of the imported docs? - int indexFound = Int32.MaxValue; + int indexFound = int.MaxValue; bool worked = importPriority.TryGetValue(docDefined, out indexFound); if (worked && indexFound < indexBest) { @@ -766,7 +786,9 @@ internal static CdmDocumentDefinition FetchPriorityDocument(List docsNotIndexed = this.documentLibrary.ListDocsNotIndexed(); - if (docsNotIndexed.Count > 0) + if (docsNotIndexed.Count == 0) { - // index any imports - foreach (CdmDocumentDefinition doc in docsNotIndexed) + return true; + } + + // clear caches. + foreach (CdmDocumentDefinition doc in docsNotIndexed) + { + if (!doc.DeclarationsIndexed) { - if (doc.NeedsIndexing) - { - Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"index start: {doc.AtCorpusPath}", nameof(this.IndexDocuments)); - doc.ClearCaches(); - doc.GetImportPriorities(); - } + Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"index start: {doc.AtCorpusPath}", nameof(this.IndexDocuments)); + doc.ClearCaches(); } - // check basic integrity - foreach (CdmDocumentDefinition doc in docsNotIndexed) + } + + // check basic integrity. + foreach (CdmDocumentDefinition doc in docsNotIndexed) + { + if (!doc.DeclarationsIndexed) { - if (doc.NeedsIndexing) + doc.IsValid = true; // assume valid unless this fails + if (!this.CheckObjectIntegrity(doc)) { - doc.IsValid = true; // assume valid unless this fails - if (!this.CheckObjectIntegrity(doc)) - { - doc.IsValid = false; - } + doc.IsValid = false; } } - // declare definitions in objects in this doc + } + + // declare definitions in objects in this doc. + foreach (CdmDocumentDefinition doc in docsNotIndexed) + { + if (!doc.DeclarationsIndexed && doc.IsValid) + { + this.DeclareObjectDefinitions(doc, ""); + } + } + + if (strictValidation) + { + // index any imports. foreach (CdmDocumentDefinition doc in docsNotIndexed) { - if (doc.NeedsIndexing && doc.IsValid) - { - this.DeclareObjectDefinitions(doc, ""); - } + doc.GetImportPriorities(); } - // make sure we can find everything that is named by reference + + // make sure we can find everything that is named by reference. foreach (CdmDocumentDefinition doc in docsNotIndexed) { - if (doc.NeedsIndexing && doc.IsValid) + if (doc.IsValid) { ResolveOptions resOptLocal = CdmObjectBase.CopyResolveOptions(resOpt); resOptLocal.WrtDoc = doc; this.ResolveObjectDefinitions(resOptLocal, doc); } } - // now resolve any trait arguments that are type object + + // now resolve any trait arguments that are type object. foreach (CdmDocumentDefinition doc in docsNotIndexed) { - if (doc.NeedsIndexing && doc.IsValid) + if (doc.IsValid) { ResolveOptions resOptLocal = CdmObjectBase.CopyResolveOptions(resOpt); resOptLocal.WrtDoc = doc; this.ResolveTraitArguments(resOptLocal, doc); } } - // finish up - foreach (CdmDocumentDefinition doc in docsNotIndexed) - { - if (doc.NeedsIndexing) - { - Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"index finish: { doc.AtCorpusPath}", nameof(this.IndexDocuments)); - this.FinishDocumentResolve(doc); - } - } } - return true; - } + // finish up. + foreach (CdmDocumentDefinition doc in docsNotIndexed) + { + Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"index finish: { doc.AtCorpusPath}", nameof(this.IndexDocuments)); + this.FinishDocumentResolve(doc, strictValidation); + } - internal bool Visit(string path, VisitCallback preChildren, VisitCallback postChildren) - { - return false; + return true; } internal async Task LoadFolderOrDocument(string objectPath, bool forceReload = false, ResolveOptions resOpt = null) @@ -915,9 +943,21 @@ internal async Task LoadFolderOrDocument(string objectPa /// /// Fetches an object by the path from the corpus. /// - internal async Task _FetchObjectAsync(string objectPath, CdmObject obj = null, bool forceReload = false, bool shallowValidation = false) + /// /// Type of the object to be fetched + /// Object path, absolute or relative. + /// Optional parameter. When provided, it is used to obtain the FolderPath and the Namespace needed to create the absolute path from a relative path. + /// Optional parameter. When provided, will use be used to determine how the symbols are resolved. + /// Optional parameter. When true, the document containing the requested object is reloaded from storage to access any external changes made to the document since it may have been cached by the corpus. + /// The object obtained from the provided path. + public async Task FetchObjectAsync(string objectPath, CdmObject obj = null, ResolveOptions resOpt = null, bool forceReload = false) + where T: CdmObject { - // Convert the object path to the absolute corpus path. + if (resOpt == null) + { + resOpt = new ResolveOptions(); + } + + // convert the object path to the absolute corpus path. objectPath = this.Storage.CreateAbsoluteCorpusPath(objectPath, obj); var documentPath = objectPath; @@ -930,36 +970,35 @@ internal async Task _FetchObjectAsync(string objectPath, CdmObject ob documentPath = objectPath.Slice(0, documentNameIndex); } - Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"request object: {objectPath}", nameof(this._FetchObjectAsync)); + Logger.Debug(nameof(CdmCorpusDefinition), this.Ctx, $"request object: {objectPath}", nameof(this.FetchObjectAsync)); CdmContainerDefinition newObj = await LoadFolderOrDocument(documentPath, forceReload); if (newObj != null) { - ResolveOptions resOpt = new ResolveOptions(newObj, new AttributeResolutionDirectiveSet()); // get imports and index each document that is loaded if (newObj is CdmDocumentDefinition doc) { - resOpt.ShallowValidation = shallowValidation; if (!await doc.IndexIfNeeded(resOpt)) { - return null; + return default; } if (!doc.IsValid) { - Logger.Error(nameof(CdmCorpusDefinition), this.Ctx, $"The requested path: {objectPath} involves a document that failed validation", nameof(this._FetchObjectAsync)); - - return null; + Logger.Error(nameof(CdmCorpusDefinition), this.Ctx, $"The requested path: {objectPath} involves a document that failed validation", nameof(this.FetchObjectAsync)); + return default; } } if (documentPath.Equals(objectPath)) - return newObj; + { + return (T)newObj; + } if (documentNameIndex == -1) { // there is no remaining path to be loaded, so return. - return null; + return default; } // trim off the document path to get the object path in the doc @@ -968,13 +1007,13 @@ internal async Task _FetchObjectAsync(string objectPath, CdmObject ob var result = ((CdmDocumentDefinition)newObj).FetchObjectFromDocumentPath(remainingObjectPath, resOpt); if (result == null) { - Logger.Error(nameof(CdmCorpusDefinition), (ResolveContext)this.Ctx, $"Could not find symbol '{objectPath}' in document[{newObj.AtCorpusPath}]", nameof(_FetchObjectAsync)); + Logger.Error(nameof(CdmCorpusDefinition), (ResolveContext)this.Ctx, $"Could not find symbol '{objectPath}' in document[{newObj.AtCorpusPath}]", nameof(FetchObjectAsync)); } - return result; + return (T)result; } - return null; + return default; } /// @@ -986,9 +1025,14 @@ internal async Task _FetchObjectAsync(string objectPath, CdmObject ob /// Optional parameter. When provided, shallow validation in ResolveOptions is enabled, which logs errors regarding resolving/loading references as warnings. /// Optional parameter. When true, the document containing the requested object is reloaded from storage to access any external changes made to the document since it may have been cached by the corpus. /// The object obtained from the provided path. - public async Task FetchObjectAsync(string objectPath, CdmObject obj = null, bool shallowValidation = false, bool forceReload = false) + public async Task FetchObjectAsync(string objectPath, CdmObject obj, bool shallowValidation, bool forceReload = false) + where T : CdmObject { - return (T)(await _FetchObjectAsync(objectPath, obj, forceReload, shallowValidation)); + var resOpt = new ResolveOptions + { + ShallowValidation = shallowValidation + }; + return await FetchObjectAsync(objectPath, obj, resOpt, forceReload); } /// @@ -1126,7 +1170,9 @@ internal bool CheckObjectIntegrity(CdmDocumentDefinition CurrentDoc) errorCount++; } else + { (iObject as CdmObjectBase).Ctx = ctx; + } Logger.Info(nameof(CdmCorpusDefinition), ctx, $"checked '{path}'", CurrentDoc.FolderPath + path); return false; @@ -1485,18 +1531,18 @@ internal void ResolveTraitArguments(ResolveOptions resOpt, CdmDocumentDefinition ParameterCollection paramCollection = ctx.CurrentScope.CurrentTrait.FetchAllParameters(resOpt); CdmParameterDefinition paramFound = null; dynamic aValue; - if (ot == CdmObjectType.ArgumentDef) + paramFound = paramCollection.ResolveParameter(ctx.CurrentScope.CurrentParameter, (iObject as CdmArgumentDefinition).Name); + (iObject as CdmArgumentDefinition).ResolvedParameter = paramFound; + aValue = (iObject as CdmArgumentDefinition).Value; + + // if parameter type is entity, then the value should be an entity or ref to one + // same is true of 'dataType' dataType + aValue = this.ConstTypeCheck(resOpt, CurrentDoc, paramFound, aValue); + if (aValue != null) { - paramFound = paramCollection.ResolveParameter(ctx.CurrentScope.CurrentParameter, (iObject as CdmArgumentDefinition).Name); - (iObject as CdmArgumentDefinition).ResolvedParameter = paramFound; - aValue = (iObject as CdmArgumentDefinition).Value; - - // if parameter type is entity, then the value should be an entity or ref to one - // same is true of 'dataType' dataType - aValue = this.ConstTypeCheck(resOpt, CurrentDoc, paramFound, aValue); - if (aValue != null) - (iObject as CdmArgumentDefinition).Value = aValue; + (iObject as CdmArgumentDefinition).Value = aValue; } + } } catch (Exception e) @@ -1527,14 +1573,18 @@ internal void ResolveTraitArguments(ResolveOptions resOpt, CdmDocumentDefinition return; } - internal void FinishDocumentResolve(CdmDocumentDefinition doc) + internal void FinishDocumentResolve(CdmDocumentDefinition doc, bool strictValidation) { + bool wasIndexedPreviously = doc.DeclarationsIndexed; + doc.CurrentlyIndexing = false; - doc.ImportsIndexed = true; - doc.NeedsIndexing = false; + doc.ImportsIndexed = doc.ImportsIndexed || !strictValidation; + doc.DeclarationsIndexed = true; + doc.NeedsIndexing = !strictValidation; this.documentLibrary.MarkDocumentAsIndexed(doc); - if (doc.IsValid) + // if the document declarations were indexed previously, do not log again. + if (!wasIndexedPreviously && doc.IsValid) { doc.Definitions.AllItems.ForEach(def => { @@ -1558,7 +1608,7 @@ internal void FinishResolve() int l = AllDocuments.Count; for (int i = 0; i < l; i++) { - this.FinishDocumentResolve(AllDocuments[i]); + this.FinishDocumentResolve(AllDocuments[i], false); } } @@ -2044,18 +2094,26 @@ internal List FindOutgoingRelationshipsForEntityRef( /// Resolves references according to the provided stages and validates. /// /// The validation step that follows the completed step. + [Obsolete("This function is likely to be removed soon.")] public async Task ResolveReferencesAndValidateAsync(CdmValidationStep stage, CdmValidationStep stageThrough, ResolveOptions resOpt) { // use the provided directives or use the current default AttributeResolutionDirectiveSet directives = null; if (resOpt != null) + { directives = resOpt.Directives; + } else + { directives = this.DefaultResolutionDirectives; + } + resOpt = new ResolveOptions { WrtDoc = null, Directives = directives, RelationshipDepth = 0 }; foreach (CdmDocumentDefinition doc in this.documentLibrary.ListAllDocuments()) + { await doc.IndexIfNeeded(resOpt); + } bool finishResolve = stageThrough == stage; switch (stage) @@ -2391,44 +2449,6 @@ private void CheckPrimaryKeyAttributes(CdmEntityDefinition resolvedEntity, Resol } } - private static string PathToSymbol(string symbol, CdmDocumentDefinition docFrom, DocsResult docResultTo) - { - // if no destination given, no path to look for - if (docResultTo.DocBest == null) - return null; - - // if there, return - if (docFrom == docResultTo.DocBest) - return docResultTo.NewSymbol; - - // if the to Doc is imported directly here, - int pri; - if (docFrom.ImportPriorities.ImportPriority.TryGetValue(docResultTo.DocBest, out pri)) - { - // if the imported version is the highest priority, we are good - if (docResultTo.DocList == null || docResultTo.DocList.Count == 1) - return symbol; - - // more than 1 symbol, see if highest pri - int maxPri = docResultTo.DocList.Max((docCheck) => docFrom.ImportPriorities.ImportPriority[docCheck]); - if (maxPri == pri) - return symbol; - } - - // can't get there directly, check the monikers - if (docFrom.ImportPriorities.MonikerPriorityMap != null) - { - foreach (var kv in docFrom.ImportPriorities.MonikerPriorityMap) - { - string tryMoniker = PathToSymbol(symbol, kv.Value, docResultTo); - if (tryMoniker != null) - return $"{kv.Key}/{tryMoniker}"; - - } - } - return null; - } - /// /// For Projections get the list of 'From' Attributes /// diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDataPartitionDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDataPartitionDefinition.cs index 6275417881..c277356563 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDataPartitionDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDataPartitionDefinition.cs @@ -76,7 +76,7 @@ public CdmDataPartitionDefinition(CdmCorpusContext ctx, string name) : base(ctx) public string Name { get; set; } /// Gets or sets the data partition's refresh time. - public DateTime? RefreshTime { get; set; } + public DateTimeOffset? RefreshTime { get; set; } /// LastChildFileModifiedTime is not valid for DataPartitions since they do not contain any children objects. public DateTimeOffset? LastChildFileModifiedTime { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDocumentDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDocumentDefinition.cs index 99173689f0..cce6fc0622 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDocumentDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmDocumentDefinition.cs @@ -63,6 +63,7 @@ public class CdmDocumentDefinition : CdmObjectSimple, CdmContainerDefinition [Obsolete("Only for internal use")] public string Namespace { get; set; } internal bool ImportsIndexed { get; set; } + internal bool DeclarationsIndexed { get; set; } internal bool CurrentlyIndexing { get; set; } internal bool IsValid { get; set; } internal DateTimeOffset? _fileSystemModifiedTime { get; set; } @@ -296,7 +297,9 @@ internal CdmObject FetchObjectFromDocumentPath(string objectPath, ResolveOptions { // in current document? if (this.InternalDeclarations.ContainsKey(objectPath)) + { return this.InternalDeclarations[objectPath]; + } else { // this might be a request for an object def drill through of a reference. @@ -384,7 +387,7 @@ public override string AtCorpusPath return this.Folder.AtCorpusPath + this.Name; } } - } + } /// public override bool Visit(string pathFrom, VisitCallback preChildren, VisitCallback postChildren) @@ -415,7 +418,7 @@ public async Task SaveAsAsync(string newName, bool saveReferenced = false, } ResolveOptions resOpt = new ResolveOptions(this, this.Ctx.Corpus.DefaultResolutionDirectives); - if (await this.IndexIfNeeded(resOpt) == false) + if (!await this.IndexIfNeeded(resOpt)) { Logger.Error(nameof(CdmDocumentDefinition), (ResolveContext)this.Ctx, $"Failed to index document prior to save '{this.Name}'", nameof(SaveAsAsync)); return false; @@ -442,30 +445,40 @@ public async Task RefreshAsync(ResolveOptions resOpt) resOpt = new ResolveOptions(this, this.Ctx.Corpus.DefaultResolutionDirectives); } + this.DeclarationsIndexed = false; this.NeedsIndexing = true; this.IsValid = true; - return await this.IndexIfNeeded(resOpt); + return await this.IndexIfNeeded(resOpt, true); } - internal async Task IndexIfNeeded(ResolveOptions resOpt) + internal async Task IndexIfNeeded(ResolveOptions resOpt, bool strictValidation = false) { - if (this.NeedsIndexing) + if (this.NeedsIndexing && !this.CurrentlyIndexing) { if (this.Folder == null) { Logger.Error(nameof(CdmDocumentDefinition), (ResolveContext)this.Ctx, $"Document '{this.Name}' is not in a folder", nameof(IndexIfNeeded)); return false; } - // make the corpus internal machinery pay attention to this document for this call. + var corpus = this.Folder.Corpus; - await corpus.ResolveImportsAsync(this, resOpt); + // if the strictValidation is specified by the user in the ResolveOptions that value has precedence. + if (resOpt.StrictValidation != null) + { + strictValidation = (bool)resOpt.StrictValidation; + } - // maintain actual current doc + if (strictValidation) + { + await corpus.ResolveImportsAsync(this, resOpt); + } + + // make the corpus internal machinery pay attention to this document for this call. corpus.documentLibrary.MarkDocumentForIndexing(this); - return corpus.IndexDocuments(resOpt); + return corpus.IndexDocuments(resOpt, strictValidation); } return true; @@ -606,7 +619,7 @@ private int PrioritizeImports(HashSet processedSet, Impor internal async Task Reload() { - await (this.Ctx.Corpus as CdmCorpusDefinition)._FetchObjectAsync(this.AtCorpusPath, null, true); + await this.Ctx.Corpus.FetchObjectAsync(this.AtCorpusPath, null, null, true); } virtual internal async Task SaveLinkedDocuments(CopyOptions options = null) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmEntityDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmEntityDefinition.cs index 018eaa68a6..b1abd64129 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmEntityDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmEntityDefinition.cs @@ -554,6 +554,13 @@ public async Task CreateResolvedEntityAsync(string newEntNa return null; } + // if the wrtDoc needs to be indexed (like it was just modified) then do that first + if (!await resOpt.WrtDoc.IndexIfNeeded(resOpt, true)) + { + Logger.Error(nameof(CdmEntityDefinition), this.Ctx as ResolveContext, $"Couldn't index source document.", nameof(CreateResolvedEntityAsync)); + return null; + } + if (folder == null) { folder = this.InDocument.Folder; @@ -570,13 +577,6 @@ public async Task CreateResolvedEntityAsync(string newEntNa return null; } - // if the wrtDoc needs to be indexed (like it was just modified) then do that first - if (!await (resOpt.WrtDoc as CdmDocumentDefinition).IndexIfNeeded(resOpt)) - { - Logger.Error(nameof(CdmEntityDefinition), this.Ctx as ResolveContext, $"Couldn't index source document.", nameof(CreateResolvedEntityAsync)); - return null; - } - // make the top level attribute context for this entity // for this whole section where we generate the attribute context tree and get resolved attributes // set the flag that keeps all of the parent changes and document dirty from from happening diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmLocalEntityDeclarationDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmLocalEntityDeclarationDefinition.cs index ac4046ec18..392683fb28 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmLocalEntityDeclarationDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmLocalEntityDeclarationDefinition.cs @@ -7,6 +7,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Cdm using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.CommonDataModel.ObjectModel.Enums; + using Microsoft.CommonDataModel.ObjectModel.Storage; using Microsoft.CommonDataModel.ObjectModel.Utilities; using Microsoft.CommonDataModel.ObjectModel.Utilities.Logging; @@ -179,24 +180,29 @@ public override bool IsDerivedFrom(string baseName, ResolveOptions resOpt = null /// public async Task FileStatusCheckAsync() { - string fullPath = this.Ctx.Corpus.Storage.CreateAbsoluteCorpusPath(this.EntityPath, this.InDocument); - DateTimeOffset? modifiedTime = await this.Ctx.Corpus.ComputeLastModifiedTimeAsync(fullPath, this); - - foreach (var partition in this.DataPartitions) + using ((this.Ctx.Corpus.Storage.FetchAdapter(this.InDocument.Namespace) as StorageAdapterBase)?.CreateFileQueryCacheContext()) { - await partition.FileStatusCheckAsync(); - } + string fullPath = this.Ctx.Corpus.Storage.CreateAbsoluteCorpusPath(this.EntityPath, this.InDocument); + DateTimeOffset? modifiedTime = await this.Ctx.Corpus.ComputeLastModifiedTimeAsync(fullPath, this); - foreach (var pattern in this.DataPartitionPatterns) - { - await pattern.FileStatusCheckAsync(); - } + // check patterns first as this is a more performant way of querying file modification times + // from ADLS and we can cache the times for reuse in the individual partition checks below + foreach (var pattern in this.DataPartitionPatterns) + { + await pattern.FileStatusCheckAsync(); + } + + foreach (var partition in this.DataPartitions) + { + await partition.FileStatusCheckAsync(); + } - // update modified times - this.LastFileStatusCheckTime = DateTimeOffset.UtcNow; - this.LastFileModifiedTime = TimeUtils.MaxTime(modifiedTime, this.LastFileModifiedTime); + // update modified times + this.LastFileStatusCheckTime = DateTimeOffset.UtcNow; + this.LastFileModifiedTime = TimeUtils.MaxTime(modifiedTime, this.LastFileModifiedTime); - await this.ReportMostRecentTimeAsync(this.LastFileModifiedTime); + await this.ReportMostRecentTimeAsync(this.LastFileModifiedTime); + } } /// diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmManifestDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmManifestDefinition.cs index 202a56e6f7..4de4db5f51 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmManifestDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmManifestDefinition.cs @@ -10,6 +10,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Cdm using System.Linq; using System.Threading.Tasks; using Microsoft.CommonDataModel.ObjectModel.Utilities.Logging; + using Microsoft.CommonDataModel.ObjectModel.Storage; public class CdmManifestDefinition : CdmDocumentDefinition, CdmObjectDefinition, CdmFileStatus { @@ -466,24 +467,27 @@ internal async Task GetEntityPathFromDeclaration(CdmEntityDeclarationDef /// public async Task FileStatusCheckAsync() { - DateTimeOffset? modifiedTime = await this.Ctx.Corpus.GetLastModifiedTimeAsyncFromObject(this); + using ((this.Ctx.Corpus.Storage.FetchAdapter(this.InDocument.Namespace) as StorageAdapterBase)?.CreateFileQueryCacheContext()) + { + DateTimeOffset? modifiedTime = await this.Ctx.Corpus.GetLastModifiedTimeAsyncFromObject(this); - foreach (var entity in this.Entities) - await entity.FileStatusCheckAsync(); + foreach (var entity in this.Entities) + await entity.FileStatusCheckAsync(); - foreach (var subManifest in this.SubManifests) - await subManifest.FileStatusCheckAsync(); + foreach (var subManifest in this.SubManifests) + await subManifest.FileStatusCheckAsync(); - this.LastFileStatusCheckTime = DateTimeOffset.UtcNow; - if (this.LastFileModifiedTime == null) - this.LastFileModifiedTime = this._fileSystemModifiedTime; + this.LastFileStatusCheckTime = DateTimeOffset.UtcNow; + if (this.LastFileModifiedTime == null) + this.LastFileModifiedTime = this._fileSystemModifiedTime; - // reload the manifest if it has been updated in the file system - if (modifiedTime != this._fileSystemModifiedTime) - { - await this.Reload(); - this.LastFileModifiedTime = TimeUtils.MaxTime(modifiedTime, this.LastFileModifiedTime); - this._fileSystemModifiedTime = this.LastFileModifiedTime; + // reload the manifest if it has been updated in the file system + if (modifiedTime != this._fileSystemModifiedTime) + { + await this.Reload(); + this.LastFileModifiedTime = TimeUtils.MaxTime(modifiedTime, this.LastFileModifiedTime); + this._fileSystemModifiedTime = this.LastFileModifiedTime; + } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObject.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObject.cs index 2f5703ac92..99300769e7 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObject.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObject.cs @@ -4,7 +4,6 @@ namespace Microsoft.CommonDataModel.ObjectModel.Cdm { using Microsoft.CommonDataModel.ObjectModel.Enums; - using Microsoft.CommonDataModel.ObjectModel.ResolvedModel; using Microsoft.CommonDataModel.ObjectModel.Utilities; using System; diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObjectReference.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObjectReference.cs index 13897621cd..f870e2d2a3 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObjectReference.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmObjectReference.cs @@ -5,7 +5,6 @@ namespace Microsoft.CommonDataModel.ObjectModel.Cdm { using Microsoft.CommonDataModel.ObjectModel.Utilities; using System; - using System.Collections.Generic; public interface CdmObjectReference : CdmObject { diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitDefinition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitDefinition.cs index 1db4a50b65..5615a92fd2 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitDefinition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitDefinition.cs @@ -180,7 +180,6 @@ public override bool Visit(string pathFrom, VisitCallback preChildren, VisitCall this.DeclaredPath = path; } } - //trackVisits(path); if (preChildren != null && preChildren.Invoke(this, path)) return false; @@ -188,7 +187,7 @@ public override bool Visit(string pathFrom, VisitCallback preChildren, VisitCall if (this.ExtendsTrait.Visit(path + "/extendsTrait/", preChildren, postChildren)) return true; if (this.Parameters != null) - if (this._hasParameters.VisitList(path + "/hasParameters/", preChildren, postChildren)) + if (this.Parameters.VisitList(path + "/hasParameters/", preChildren, postChildren)) return true; if (postChildren != null && postChildren.Invoke(this, path)) return true; diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitReference.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitReference.cs index d9ced1c289..c9689b7e56 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitReference.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/CdmTraitReference.cs @@ -211,13 +211,13 @@ internal override ResolvedTraitSet FetchResolvedTraits(ResolveOptions resOpt = n int iArg = 0; if (this.Arguments != null) { - foreach (CdmArgumentDefinition a in this.Arguments) + foreach (CdmArgumentDefinition argument in this.Arguments) { - paramFound = param.ResolveParameter(iArg, a.Name); - a.ResolvedParameter = paramFound; - aValue = a.Value; + paramFound = param.ResolveParameter(iArg, argument.Name); + argument.ResolvedParameter = paramFound; + aValue = argument.Value; aValue = ctx.Corpus.ConstTypeCheck(resOpt, this.InDocument, paramFound, aValue); - a.Value = aValue; + argument.Value = aValue; iArg++; } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/DocumentLibrary.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/DocumentLibrary.cs index 3c9bb21608..c42191d1c9 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/DocumentLibrary.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/DocumentLibrary.cs @@ -71,10 +71,17 @@ internal void RemoveDocumentPath(string path, CdmFolderDefinition folder, CdmDoc /// internal List ListDocsNotIndexed() { + var docsNotIndexed = new List(); lock (this.allDocuments) { - return new List(this.docsNotIndexed.Keys); + // gets all the documents that needs indexing and set the currentlyIndexing flag to true. + foreach (var doc in this.docsNotIndexed.Keys) + { + doc.CurrentlyIndexing = true; + docsNotIndexed.Add(doc); + } } + return docsNotIndexed; } /// diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/Projections/CdmOperationExcludeAttributes.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/Projections/CdmOperationExcludeAttributes.cs index cf41710719..44cc3792ae 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/Projections/CdmOperationExcludeAttributes.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Cdm/Projections/CdmOperationExcludeAttributes.cs @@ -23,6 +23,7 @@ public CdmOperationExcludeAttributes(CdmCorpusContext ctx) : base(ctx) { this.ObjectType = CdmObjectType.OperationExcludeAttributesDef; this.Type = CdmOperationType.ExcludeAttributes; + this.ExcludeAttributes = new List(); } /// @@ -63,7 +64,7 @@ public override bool Validate() { List missingFields = new List(); - if (this.ExcludeAttributes == null || this.ExcludeAttributes.Count == 0) + if (this.ExcludeAttributes == null) missingFields.Add("ExcludeAttributes"); if (missingFields.Count > 0) @@ -104,8 +105,68 @@ internal override ProjectionAttributeStateSet AppendProjectionAttributeState( ProjectionAttributeStateSet projOutputSet, CdmAttributeContext attrCtx) { - Logger.Error(TAG, this.Ctx, "Projection operation not implemented yet.", nameof(AppendProjectionAttributeState)); - return null; + // Create a new attribute context for the operation + AttributeContextParameters attrCtxOpExcludeAttrsParam = new AttributeContextParameters + { + under = attrCtx, + type = CdmAttributeContextType.OperationExcludeAttributes, + Name = $"operation/index{Index}/operationExcludeAttributes" + }; + CdmAttributeContext attrCtxOpExcludeAttrs = CdmAttributeContext.CreateChildUnder(projCtx.ProjectionDirective.ResOpt, attrCtxOpExcludeAttrsParam); + + // Get the top-level attribute names of the attributes to exclude + // We use the top-level names because the exclude list may contain a previous name our current resolved attributes had + Dictionary topLevelExcludeAttributeNames = ProjectionResolutionCommonUtil.GetTopList(projCtx, this.ExcludeAttributes); + + // Iterate through all the projection attribute states generated from the source's resolved attributes + // Each projection attribute state contains a resolved attribute that it is corresponding to + foreach (ProjectionAttributeState currentPAS in projCtx.CurrentAttributeStateSet.Values) + { + // Check if the current projection attribute state's resolved attribute is in the list of attributes to exclude + // If this attribute is not in the exclude list, then we are including it in the output + if (!topLevelExcludeAttributeNames.ContainsKey(currentPAS.CurrentResolvedAttribute.ResolvedName)) + { + // Create a new attribute context for the attribute that we are including + AttributeContextParameters attrCtxAddedAttrParam = new AttributeContextParameters + { + under = attrCtx, + type = CdmAttributeContextType.AttributeDefinition, + Name = currentPAS.CurrentResolvedAttribute.ResolvedName + }; + CdmAttributeContext attrCtxAddedAttr = CdmAttributeContext.CreateChildUnder(projCtx.ProjectionDirective.ResOpt, attrCtxAddedAttrParam); + + // Create a projection attribute state for the included attribute + // We only create projection attribute states for attributes that are not in the exclude list + // Add the current projection attribute state as the previous state of the new projection attribute state + ProjectionAttributeState newPAS = new ProjectionAttributeState(projOutputSet.Ctx) + { + CurrentResolvedAttribute = currentPAS.CurrentResolvedAttribute, + PreviousStateList = new List { currentPAS } + }; + + projOutputSet.Add(newPAS); + } + else + { + // The current projection attribute state's resolved attribute is in the exclude list + + // Get the attribute name the way it appears in the exclude list + // For our attribute context, we want to use the attribute name the attribute has in the exclude list rather than its current name + string excludeAttributeName = null; + topLevelExcludeAttributeNames.TryGetValue(currentPAS.CurrentResolvedAttribute.ResolvedName, out excludeAttributeName); + + // Create a new attribute context for the excluded attribute + AttributeContextParameters attrCtxExcludedAttrParam = new AttributeContextParameters + { + under = attrCtxOpExcludeAttrs, + type = CdmAttributeContextType.AttributeDefinition, + Name = excludeAttributeName + }; + CdmAttributeContext attrCtxExcludedAttr = CdmAttributeContext.CreateChildUnder(projCtx.ProjectionDirective.ResOpt, attrCtxExcludedAttrParam); + } + } + + return projOutputSet; } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.ALL.nuspec b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.ALL.nuspec index 1339d54bdd..0f07fc6a32 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.ALL.nuspec +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.ALL.nuspec @@ -5,7 +5,7 @@ Microsoft.CommonDataModel.ObjectModel.All - 1.0.9 + 1.0.10 The CSharp implementation of the Microsoft Common Data Model Object Model. Microsoft Corporation. diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.csproj b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.csproj index dc05a2fdc3..0cc73168e3 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.csproj +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.csproj @@ -2,7 +2,7 @@ netstandard2.0;net45;net462 - 1.0.9 + 1.0.10 The CSharp implementation of the Microsoft Common Data Model Object Model. Microsoft Corporation diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.nuspec b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.nuspec index d1eb1d6a2d..0b013e3f7c 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.nuspec +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Microsoft.CommonDataModel.ObjectModel.nuspec @@ -5,7 +5,7 @@ Microsoft.CommonDataModel.ObjectModel - 1.0.9 + 1.0.10 The CSharp implementation of the Microsoft Common Data Model Object Model. Microsoft Corporation. diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/CdmFolder/E2ERelationshipPersistence.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/CdmFolder/E2ERelationshipPersistence.cs index b42d85de1f..375d20778a 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/CdmFolder/E2ERelationshipPersistence.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/CdmFolder/E2ERelationshipPersistence.cs @@ -13,7 +13,10 @@ class E2ERelationshipPersistence public static CdmE2ERelationship FromData(CdmCorpusContext ctx, E2ERelationship dataObj) { var relationship = ctx.Corpus.MakeObject(CdmObjectType.E2ERelationshipDef); - relationship.Name = dataObj.Name; + if (!string.IsNullOrWhiteSpace(dataObj.Name)) + { + relationship.Name = dataObj.Name; + } relationship.FromEntity = dataObj.FromEntity; relationship.FromEntityAttribute = dataObj.FromEntityAttribute; relationship.ToEntity = dataObj.ToEntity; @@ -25,7 +28,7 @@ public static E2ERelationship ToData(CdmE2ERelationship instance) { return new E2ERelationship { - Name = instance.Name, + Name = !string.IsNullOrWhiteSpace(instance.Name) ? instance.Name : null, FromEntity = instance.FromEntity, FromEntityAttribute = instance.FromEntityAttribute, ToEntity = instance.ToEntity, diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/ModelJson/types/Partition.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/ModelJson/types/Partition.cs index 2820613f89..0a32431a45 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/ModelJson/types/Partition.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Persistence/ModelJson/types/Partition.cs @@ -14,7 +14,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Persistence.ModelJson.types public class Partition : DataObject { [JsonProperty("refreshTime", NullValueHandling = NullValueHandling.Ignore)] - public DateTime? RefreshTime { get; set; } + public DateTimeOffset? RefreshTime { get; set; } [JsonProperty("location")] public string Location { get; set; } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionAttributeStateSet.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionAttributeStateSet.cs index a78f0425bd..2345b4328c 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionAttributeStateSet.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionAttributeStateSet.cs @@ -42,7 +42,7 @@ internal void Add(ProjectionAttributeState pas) } else { - Set.Add(pas.CurrentResolvedAttribute.ResolvedName, pas); + Set[pas.CurrentResolvedAttribute.ResolvedName] = pas; } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionResolutionCommonUtil.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionResolutionCommonUtil.cs index c559d98052..904390cc57 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionResolutionCommonUtil.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/ResolvedModel/Projections/ProjectionResolutionCommonUtil.cs @@ -130,24 +130,34 @@ internal static List GetLeafList(ProjectionContext pro } /// - /// Get top node of the projection state tree for non-polymorphic scenarios + /// Gets the names of the top-level nodes in the projection state tree (for non-polymorphic scenarios) that match a set of attribute names /// - /// - /// - /// - internal static List GetTop(ProjectionContext projCtx, string attrName) + /// The projection context. + /// The list of attribute names to match from. + internal static Dictionary GetTopList(ProjectionContext projCtx, List attrNames) { - SearchResult result = new SearchResult(); - foreach (ProjectionAttributeState top in projCtx.CurrentAttributeStateSet.Values) + // This dictionary contains a mapping from the top-level (most recent) name of an attribute + // to the attribute name the top-level name was derived from (the name contained in the given list) + Dictionary topLevelAttributeNames = new Dictionary(); + + // Iterate through each attribute name in the list and search for their top-level names + foreach (string attrName in attrNames) { - SearchStructure st = new SearchStructure(); - st = SearchStructure.BuildStructure(top, top, attrName, st, false, 0); - if (st?.Result.FoundFlag == true) + // Iterate through each projection attribute state in the current set and check if its + // current resolved attribute's name is the top-level name of the current attrName + foreach (ProjectionAttributeState top in projCtx.CurrentAttributeStateSet.Values) { - result = st.Result; + SearchStructure st = new SearchStructure(); + st = SearchStructure.BuildStructure(top, top, attrName, st, false, 0); + // Found the top-level name + if (st?.Result.FoundFlag == true) + { + // Create a mapping from the top-level name of the attribute to the name it has in the given list + topLevelAttributeNames[top.CurrentResolvedAttribute.ResolvedName] = attrName; + } } } - return result?.Top; + return topLevelAttributeNames; } /// diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/CdmStandardsAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/CdmStandardsAdapter.cs index 964325325a..a4493489ac 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/CdmStandardsAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/CdmStandardsAdapter.cs @@ -14,13 +14,10 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage /// /// An adapter pre-configured to read the standard schema files published by CDM. /// - public class CdmStandardsAdapter : NetworkAdapter, StorageAdapter + public class CdmStandardsAdapter : NetworkAdapter { internal const string Type = "cdm-standards"; private const string STANDARDS_ENDPOINT = "https://cdm-schema.microsoft.com"; - - /// - public string LocationHint { get; set; } /// /// The path to be appended to the endpoint. @@ -52,36 +49,19 @@ public CdmStandardsAdapter(string root) } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public bool CanWrite() - { - return false; - } - - /// - public void ClearCache() - { - } - - /// - public Task ComputeLastModifiedTimeAsync(string corpusPath) - { - return Task.FromResult(DateTimeOffset.UtcNow); - } - - /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { return $"{AbsolutePath}{corpusPath}"; } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { if (!adapterPath.StartsWith(AbsolutePath)) { @@ -92,13 +72,7 @@ public string CreateCorpusPath(string adapterPath) } /// - public Task> FetchAllFilesAsync(string folderCorpusPath) - { - return null; - } - - /// - public string FetchConfig() + public override string FetchConfig() { var resultConfig = new JObject { @@ -127,7 +101,7 @@ public string FetchConfig() } /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { var httpRequest = this.SetUpCdmRequest(Root + corpusPath, null, HttpMethod.Get); @@ -138,7 +112,7 @@ public async Task ReadAsync(string corpusPath) } /// - public void UpdateConfig(string config) + public override void UpdateConfig(string config) { if (config == null) { @@ -159,11 +133,5 @@ public void UpdateConfig(string config) this.Root = configJson["root"].ToString(); } } - - /// - public Task WriteAsync(string corpusPath, string data) - { - throw new NotSupportedException(); - } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/GithubAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/GithubAdapter.cs index 32ad23c0a2..ebfdde832b 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/GithubAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/GithubAdapter.cs @@ -13,14 +13,11 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage using System.Threading.Tasks; [Obsolete("Please use the CdmStandardsAdapter instead.")] - public class GithubAdapter : NetworkAdapter, StorageAdapter + public class GithubAdapter : NetworkAdapter { private static string ghHost = "raw.githubusercontent.com"; private static string ghPath = "/Microsoft/CDM/master/schemaDocuments"; - /// - public string LocationHint { get; set; } - internal const string Type = "github"; /// @@ -37,15 +34,15 @@ private static string GhRawRoot() } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { - var httpRequest = this.SetUpCdmRequest($"{ghPath}{corpusPath}", + var httpRequest = this.SetUpCdmRequest($"{ghPath}{corpusPath}", new Dictionary() { { "User-Agent", "CDM" } }, HttpMethod.Get); using (var cdmResponse = await base.ExecuteRequest(httpRequest)) @@ -53,46 +50,15 @@ public async Task ReadAsync(string corpusPath) return await cdmResponse.Content.ReadAsStringAsync(); } } - - /// - public bool CanWrite() - { - return false; - } - + /// - public Task WriteAsync(string corpusPath, string data) - { - throw new NotImplementedException(); - } - - /// - public void ClearCache() - { - - } - - /// - public Task ComputeLastModifiedTimeAsync(string corpusPath) - { - return Task.FromResult(DateTimeOffset.UtcNow); - } - - /// - public async Task> FetchAllFilesAsync(string currFullPath) - { - // TODO - return null; - } - - /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { return $"{GithubAdapter.GhRawRoot()}{corpusPath}"; } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { string ghRoot = GithubAdapter.GhRawRoot(); // might not be an adapterPath that we understand. check that first @@ -103,9 +69,9 @@ public string CreateCorpusPath(string adapterPath) return null; } - + /// - public string FetchConfig() + public override string FetchConfig() { var resultConfig = new JObject { @@ -129,7 +95,7 @@ public string FetchConfig() } /// - public void UpdateConfig(string config) + public override void UpdateConfig(string config) { if (config == null) { diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/LocalAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/LocalAdapter.cs index 73931dbed2..f3f9d776c3 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/LocalAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/LocalAdapter.cs @@ -12,7 +12,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage using System.Text; using System.Threading.Tasks; - public class LocalAdapter : StorageAdapter + public class LocalAdapter : StorageAdapterBase { /// /// The root path of the schema documents. @@ -24,8 +24,6 @@ public class LocalAdapter : StorageAdapter /// internal string FullRoot { get; private set; } - /// - public string LocationHint { get; set; } internal const string Type = "local"; @@ -52,13 +50,13 @@ public LocalAdapter() } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { string path = this.CreateAdapterPath(corpusPath); byte[] result; @@ -73,13 +71,13 @@ public async Task ReadAsync(string corpusPath) } /// - public bool CanWrite() + public override bool CanWrite() { return true; } /// - public async Task WriteAsync(string corpusPath, string data) + public override async Task WriteAsync(string corpusPath, string data) { // ensure that the path exists before trying to write the file string path = this.CreateAdapterPath(corpusPath); @@ -87,7 +85,7 @@ public async Task WriteAsync(string corpusPath, string data) { throw new Exception($"Could not create folder for document '{path}'"); } - + using (FileStream stream = File.Open(path, FileMode.Create)) { byte[] bytes = Encoding.UTF8.GetBytes(data); @@ -96,7 +94,7 @@ public async Task WriteAsync(string corpusPath, string data) } /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { var pathTuple = StorageUtils.SplitNamespacePath(corpusPath); if (pathTuple == null) @@ -120,15 +118,10 @@ public string CreateAdapterPath(string corpusPath) } /// - public void ClearCache() - { - return; - } - - /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { - if (string.IsNullOrEmpty(adapterPath) || adapterPath.StartsWith("http")) { + if (string.IsNullOrEmpty(adapterPath) || adapterPath.StartsWith("http")) + { return null; } @@ -142,12 +135,12 @@ public string CreateCorpusPath(string adapterPath) { return formattedAdapterPath.Slice(formattedRoot.Length).Replace("\\", "/"); } - + return null; // signal that we didn't recognize path as one for this adapter } /// - public Task ComputeLastModifiedTimeAsync(string corpusPath) + public override Task ComputeLastModifiedTimeAsync(string corpusPath) { var adapterPath = this.CreateAdapterPath(corpusPath); FileInfo fileInfo = new FileInfo(adapterPath); @@ -158,7 +151,7 @@ public string CreateCorpusPath(string adapterPath) } /// - public async Task> FetchAllFilesAsync(string folderCorpusPath) + public override async Task> FetchAllFilesAsync(string folderCorpusPath) { // Returns a list corpus paths to all files and folders at or under the // provided corpus path to a folder @@ -219,7 +212,7 @@ private bool ensurePath(string pathFor) } /// - public string FetchConfig() + public override string FetchConfig() { var resultConfig = new JObject { @@ -242,7 +235,7 @@ public string FetchConfig() } /// - public void UpdateConfig(string config) + public override void UpdateConfig(string config) { if (config == null) { diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/NetworkAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/NetworkAdapter.cs index 1bef3e1ad2..30cbc4d08a 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/NetworkAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/NetworkAdapter.cs @@ -15,38 +15,22 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage /// /// Network adapter is an abstract class that contains logic for adapters dealing with data across network. /// - public abstract class NetworkAdapter : IDisposable + public abstract class NetworkAdapter : StorageAdapterBase, IDisposable { protected CdmHttpClient httpClient; - protected TimeSpan? timeout = null; - protected TimeSpan? maximumTimeout = null; - protected int numberOfRetries; - // Use some default values in milliseconds in the case a user doesn't set them up. protected const double DefaultTimeout = 2000; protected const double DefaultMaximumTimeout = 10000; protected const int DefaultNumberOfRetries = 2; protected const int DefaultShortestTimeWait = 500; + protected int numberOfRetries = DefaultNumberOfRetries; + protected CdmHttpClient.Callback waitTimeCallback = null; protected bool IsDisposed { get; private set; } - /// - /// The default network adapter constructor called when the object is created by a user through code. - /// - protected NetworkAdapter() - { - } - - /// - /// The network adapter constructor called when the object is created through a JSON config. - /// - protected NetworkAdapter(string configs) - { - } - ~NetworkAdapter() { this.Dispose(); @@ -54,40 +38,27 @@ protected NetworkAdapter(string configs) } /// - /// The timeout for an HTTP request. + /// The timeout for an HTTP request, default is 2000ms. /// - public TimeSpan? Timeout - { - get - { - return this.timeout != null ? this.timeout : TimeSpan.FromMilliseconds(DefaultTimeout); - } - set - { - this.timeout = value; - } - } + public TimeSpan? Timeout { get; set; } = TimeSpan.FromMilliseconds(DefaultTimeout); /// - /// The maximum timeout for all retried HTTP requests. + /// The maximum timeout for all retried HTTP requests, default is 10000ms. /// - public TimeSpan? MaximumTimeout - { - get - { - return this.maximumTimeout != null ? this.maximumTimeout : TimeSpan.FromMilliseconds(DefaultMaximumTimeout); - } - set - { - this.maximumTimeout = value; - } - } + public TimeSpan? MaximumTimeout { get; set; } = TimeSpan.FromMilliseconds(DefaultMaximumTimeout); /// - /// The maximum number of retries for an HTTP request, default is 0. + /// The maximum number of retries for an HTTP request, default is 2. + /// Setting NumberOfRetries to negative value won't be effective. /// - public int NumberOfRetries { get; set; } - + public int NumberOfRetries { + get{ + return this.numberOfRetries; + } + set{ + this.numberOfRetries = value < 0 ? DefaultNumberOfRetries : value; + } + } /// /// The wait time callback that gets called after each request is executed. diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/RemoteAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/RemoteAdapter.cs index 3dcff35bac..1f4a930d0c 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/RemoteAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/RemoteAdapter.cs @@ -12,7 +12,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage using Newtonsoft.Json; using Newtonsoft.Json.Linq; - public class RemoteAdapter : NetworkAdapter, StorageAdapter + public class RemoteAdapter : NetworkAdapter { private Dictionary sources = new Dictionary(); private Dictionary> sourcesById = new Dictionary>(); @@ -40,9 +40,6 @@ public Dictionary Hosts } } - /// - public string LocationHint { get; set; } - /// /// The default constructor without specifying hosts. /// @@ -63,39 +60,20 @@ public RemoteAdapter(Dictionary hosts = null) } /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public bool CanWrite() - { - return false; - } - - /// - public void ClearCache() + public override void ClearCache() { this.sources = new Dictionary(); this.sourcesById = new Dictionary>(); } /// - public Task ComputeLastModifiedTimeAsync(string corpusPath) - { - return Task.FromResult(DateTimeOffset.UtcNow); - } - - /// - public async Task> FetchAllFilesAsync(string currFullPath) - { - // TODO - return null; - } - - /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { var urlConfig = this.GetUrlConfig(corpusPath); var protocol = urlConfig["protocol"]; @@ -107,7 +85,7 @@ public string CreateAdapterPath(string corpusPath) } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { if (string.IsNullOrEmpty(adapterPath)) { @@ -129,8 +107,9 @@ public string CreateCorpusPath(string adapterPath) return $"/{hostInfo["key"]}{path}"; } + /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { var url = CreateAdapterPath(corpusPath); @@ -142,12 +121,6 @@ public async Task ReadAsync(string corpusPath) } } - /// - public Task WriteAsync(string corpusPath, string data) - { - throw new NotImplementedException(); - } - private Dictionary GetOrRegisterHostInfo(string adapterPath, string key = null) { var protocolIndex = adapterPath.IndexOf("://"); @@ -212,7 +185,7 @@ private Dictionary GetUrlConfig(string corpusPath) } /// - public string FetchConfig() + public override string FetchConfig() { var resultConfig = new JObject { @@ -250,7 +223,7 @@ public string FetchConfig() } /// - public void UpdateConfig(string config) + public override void UpdateConfig(string config) { if (config == null) { diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/ResourceAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/ResourceAdapter.cs index 226ac38603..5636fe0543 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/ResourceAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/ResourceAdapter.cs @@ -13,42 +13,20 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage /// /// The resource adapter, enables the access to the files that are marked as embedded resources. /// - public class ResourceAdapter : StorageAdapter + public class ResourceAdapter : StorageAdapterBase { - /// - public string LocationHint { get; set; } = null; - /// /// The resource path root (every path will have this as a start). /// private readonly string root = "Microsoft.CommonDataModel.ObjectModel.Resources"; - /// - public bool CanRead() + public override bool CanRead() { return true; } /// - public bool CanWrite() - { - return false; - } - - /// - public void ClearCache() - { - // No need to implement cache. - } - - /// - public Task ComputeLastModifiedTimeAsync(string corpusPath) - { - return Task.FromResult(DateTimeOffset.UtcNow); - } - - /// - public string CreateAdapterPath(string corpusPath) + public override string CreateAdapterPath(string corpusPath) { if (string.IsNullOrEmpty(corpusPath)) { @@ -59,7 +37,7 @@ public string CreateAdapterPath(string corpusPath) } /// - public string CreateCorpusPath(string adapterPath) + public override string CreateCorpusPath(string adapterPath) { if (string.IsNullOrEmpty(adapterPath) || !adapterPath.StartsWith(root)) { @@ -70,19 +48,7 @@ public string CreateCorpusPath(string adapterPath) } /// - public Task> FetchAllFilesAsync(string folderCorpusPath) - { - return null; - } - - /// - public string FetchConfig() - { - throw new NotImplementedException(); - } - - /// - public async Task ReadAsync(string corpusPath) + public override async Task ReadAsync(string corpusPath) { // Convert the corpus path to the resource path. var resourcePath = this.CreateAdapterPath(corpusPath).Replace('/', '.').Replace('-', '_'); @@ -108,17 +74,5 @@ public async Task ReadAsync(string corpusPath) throw new Exception($"There was an issue while reading file at {corpusPath}. Exception: {exception.Message.ToString()}"); } } - - /// - public void UpdateConfig(string config) - { - throw new NotImplementedException(); - } - - /// - public Task WriteAsync(string corpusPath, string data) - { - throw new NotImplementedException(); - } } } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapter.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapter.cs index de501fb809..c93d76a169 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapter.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapter.cs @@ -10,10 +10,10 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage /// /// The CDM Def interface for an adapter object that can read and write documents from a data source. - /// This interface allows a user flexibility to interact with data from multiple sources without having - /// to manually copy data to the location where the Object Model is running. This interface also allows - /// users to create their own adapter if needed. + /// This was the previous method for a user to create their own storage adapter. The current method is + /// to extend the StorageAdapterBase class. /// + [Obsolete("Please use the StorageAdapterBase class instead.")] public interface StorageAdapter { /// @@ -76,4 +76,4 @@ public interface StorageAdapter /// string FetchConfig(); } -} + } diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapterBase.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapterBase.cs new file mode 100644 index 0000000000..575c5698f5 --- /dev/null +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageAdapterBase.cs @@ -0,0 +1,161 @@ +//Microsoft Corporation.All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Threading.Tasks; + +namespace Microsoft.CommonDataModel.ObjectModel.Storage +{ + + /// + /// The CDM base class for an adapter object that can read and write documents from a data source. + /// This allows a user flexibility to interact with data from multiple sources without having + /// to manually copy data to the location where the Object Model is running. By deriving from this + /// this class, users can to create their own adapter if needed. + /// + public abstract class StorageAdapterBase : StorageAdapter + { + /// + /// The location hint, gives a hint to the reader app about the location where the adapter implementation (Nuget, NPM...) can be obtained. + /// + public string LocationHint { get; set; } + + /// + /// Converts a corpus path into a path in the domain of this adapter. + /// + public virtual string CreateAdapterPath(string corpusPath) + { + return corpusPath; + } + + /// + /// Converts a path in the domain of this adapter into a corpus path. + /// + public virtual string CreateCorpusPath(string adapterPath) + { + return adapterPath; + } + + /// + /// Returns true if the adapter can read data, false otherwise. + /// + public virtual bool CanRead() + { + return false; + } + + /// + /// Returns true if the adapter can write data to its source, false otherwise. + /// + public virtual bool CanWrite() + { + return false; + } + + /// + /// Returns data that exists at the path as a JSON string. + /// + public virtual Task ReadAsync(string corpusPath) + { + throw new NotImplementedException(); + } + + /// + /// Writes the object data to the specified document path. + /// + public virtual Task WriteAsync(string corpusPath, string data) + { + throw new NotImplementedException(); + } + + /// + /// Returns the last modified time of the specified document. + /// + public virtual Task ComputeLastModifiedTimeAsync(string corpusPath) + { + return Task.FromResult(DateTimeOffset.UtcNow); + } + + /// + /// Returns a list of corpus paths to all files and folders at or under the provided corpus path to a folder. + /// + public virtual Task> FetchAllFilesAsync(string folderCorpusPath) + { + return null; + } + + /// + /// Applies the JSON config, has to be called after default constructor. + /// + public virtual void UpdateConfig(string config) + { + } + + /// + /// Constructs the config for the adapter and returns a JSON string representing the config. + /// + public virtual string FetchConfig() + { + return "{}"; + } + + #region cache logic + + /// + /// Empties the cache of files and folders if the storage adapter uses a cache. + /// + public virtual void ClearCache() + { + } + + /// + /// If true inherited classes should cache and reuse file query results if they support this + /// + protected bool IsCacheEnabled { get { return activeCacheContexts.Count > 0; } } + + /// + /// Calling this function tells the adapter it may cache and reuse file query results, as opposed to + /// reissuing queries to the underlying file storage, which may be a costly operation. This adapter is + /// allowed to cache and reuse queries until the object returned by this function is been disposed. If + /// this function is called multiple times, caching is allowed until all objects returned by this + /// function are disposed. Intended usage is for callers to wrap a set of operations that should use + /// caching with a using statement for the returned object. + /// + public IDisposable CreateFileQueryCacheContext() + { + return new CacheContext(this); + } + + private HashSet activeCacheContexts = new HashSet(); + + /// + /// This class is used to track requests to enable file query caching. Each time a request to enable + /// caching is made an instance of this class is created and added the the adapter's activeCacheContexts + /// set. When this class is disposed it is removed from that set. When any items are in the set the + /// adapter's caching is enabled. + /// + private class CacheContext : IDisposable + { + private StorageAdapterBase adapter; + + public CacheContext(StorageAdapterBase adapter) + { + this.adapter = adapter; + this.adapter.activeCacheContexts.Add(this); + } + + public void Dispose() + { + this.adapter.activeCacheContexts.Remove(this); + if (!this.adapter.IsCacheEnabled) + { + this.adapter.ClearCache(); + } + } + } + + #endregion + } +} diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageManager.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageManager.cs index f836cf5e2c..755c3bb2a0 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageManager.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Storage/StorageManager.cs @@ -38,7 +38,7 @@ public class StorageManager /// The namespace that will be used when one is not explicitly provided. /// public string DefaultNamespace { get; set; } - + /// /// Constructs a StorageManager. /// diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/Network/CdmHttpClient.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/Network/CdmHttpClient.cs index 0273923eb0..ca8564b2ff 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/Network/CdmHttpClient.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/Network/CdmHttpClient.cs @@ -82,7 +82,7 @@ internal async Task SendAsync(CdmHttpRequest cdmRequest, Callba } else { - throw new CdmTimedOutException(); + throw new CdmTimedOutException("Maximum timeout exceeded."); } } catch (AggregateException err) diff --git a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/ResolveOptions.cs b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/ResolveOptions.cs index 2226979bcd..29ff7d4ba6 100644 --- a/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/ResolveOptions.cs +++ b/objectModel/CSharp/Microsoft.CommonDataModel.ObjectModel/Utilities/ResolveOptions.cs @@ -11,6 +11,7 @@ public class ResolveOptions public CdmDocumentDefinition WrtDoc { get; set; } // the document to use as a point of reference when resolving relative paths and symbol names. public AttributeResolutionDirectiveSet Directives { get; set; } // a set of string flags that direct how attribute resolving traits behave public bool ShallowValidation { get; set; } // when enabled, errors regarding references that are unable to be resolved or loaded are logged as warnings instead + public bool StrictValidation { get; set; } = true; // when enabled, all the imports will be loaded and the references checked otherwise will be delayed until the symbols are required. public int? ResolvedAttributeLimit { get; set; } = 4000; // the limit for the number of resolved attributes allowed per entity. if the number is exceeded, the resolution will fail internal int? RelationshipDepth { get; set; } // tracks the number of entity attributes that have been travered when collecting resolved traits or attributes. prevents run away loops internal bool SaveResolutionsOnCopy { get; set; } // when references get copied, use previous resolution results if available (for use with copy method) diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmCorpusDefinition.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmCorpusDefinition.java index ad5f3bd957..617e7bd7e7 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmCorpusDefinition.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmCorpusDefinition.java @@ -56,10 +56,8 @@ public class CdmCorpusDefinition { private String rootPath; private Map> symbolDefinitions; private Map definitionReferenceSymbols; - private Map definitionWrtTag; private Map emptyRts; - private Map objectCache; private DocumentLibrary documentLibrary; /** @@ -82,7 +80,6 @@ public class CdmCorpusDefinition { public CdmCorpusDefinition() { this.symbolDefinitions = new LinkedHashMap<>(); this.definitionReferenceSymbols = new LinkedHashMap<>(); - this.definitionWrtTag = new LinkedHashMap<>(); this.emptyRts = new LinkedHashMap<>(); this.setCtx(new ResolveContext(this)); @@ -92,7 +89,6 @@ public CdmCorpusDefinition() { this.outgoingRelationships = new LinkedHashMap<>(); this.incomingRelationships = new LinkedHashMap<>(); this.resEntMap = new LinkedHashMap<>(); - this.objectCache = new LinkedHashMap<>(); this.documentLibrary = new DocumentLibrary(); // the default for the default is to make entity attributes into foreign key references when they point at one other instance and @@ -528,7 +524,6 @@ private void registerSymbol(final String symbol, final CdmDocumentDefinition inD void removeDocumentObjects(final CdmFolderDefinition cdmFolderDefinition, final CdmDocumentDefinition docDef) { final CdmDocumentDefinition doc = docDef; - // don't worry about definitionWrtTag because it uses the doc ID that won't get re-used in this session unless there are more than 4 billion objects // every symbol defined in this document is pointing at the document, so remove from cache. // also remove the list of docs that it depends on @@ -752,6 +747,10 @@ public CdmObjectBase resolveSymbolReference( } CdmDocumentDefinition wrtDoc = resOpt.getWrtDoc(); + if (!wrtDoc.indexIfNeededAsync(resOpt, true).join()) { + Logger.error(CdmCorpusDefinition.class.getSimpleName(), ctx, "Couldn't index source document.", "resolveSymbolReference"); + return null; + } // Get the array of documents where the symbol is defined. final DocsResult symbolDocsResult = this.docsForSymbol(resOpt, wrtDoc, fromDoc, symbolDef); @@ -949,46 +948,47 @@ void registerDefinitionReferenceSymbols(final CdmObject definition, final String } } - boolean visit(final String path, final VisitCallback preChildren, final VisitCallback postChildren) { - return false; - } - private CompletableFuture loadFolderOrDocumentAsync(final String objectPath) { return loadFolderOrDocumentAsync(objectPath, false); } - boolean indexDocuments(final ResolveOptions resOpt) { + boolean indexDocuments(final ResolveOptions resOpt, final boolean strictValidation) { List docsNotIndexed = this.documentLibrary.listDocsNotIndexed(); - if (docsNotIndexed.size() > 0) { // Index any imports. - for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing()) { - Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("index start: {0}", doc.getAtCorpusPath()), "indexDocuments"); - doc.clearCaches(); - doc.getImportPriorities(); - } + if (docsNotIndexed.size() == 0) { + return true; + } + + for (final CdmDocumentDefinition doc : docsNotIndexed) { + if (!doc.declarationsIndexed) { + Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("index start: {0}", doc.getAtCorpusPath()), "indexDocuments"); + doc.clearCaches(); } + } - // Check basic integrity. - for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing()) { - doc.isValid = true; // assume valid unless this fails - if (!this.checkObjectIntegrity(doc)) { - doc.isValid = false; - } - } + // Check basic integrity. + for (final CdmDocumentDefinition doc : docsNotIndexed) { + if (!doc.declarationsIndexed) { + doc.isValid = this.checkObjectIntegrity(doc); + } + } + + // Declare definitions in objects in this doc. + for (final CdmDocumentDefinition doc : docsNotIndexed) { + if (!doc.declarationsIndexed && doc.isValid) { + this.declareObjectDefinitions(doc, ""); } + } - // Declare definitions in objects in this doc. + if (strictValidation) { + // Index any imports. for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing() && doc.isValid) { - this.declareObjectDefinitions(doc, ""); - } + doc.getImportPriorities(); } // Make sure we can find everything that is named by reference. for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing() && doc.isValid) { + if (doc.isValid) { final ResolveOptions resOptLocal = CdmObjectBase.copyResolveOptions(resOpt); resOptLocal.setWrtDoc(doc); this.resolveObjectDefinitions(doc, resOptLocal); @@ -997,20 +997,18 @@ boolean indexDocuments(final ResolveOptions resOpt) { // Now resolve any trait arguments that are type object. for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing() && doc.isValid) { + if (doc.isValid) { final ResolveOptions resOptLocal = CdmObjectBase.copyResolveOptions(resOpt); resOptLocal.setWrtDoc(doc); this.resolveTraitArguments(resOptLocal, doc); } } + } - // Finish up. - for (final CdmDocumentDefinition doc : docsNotIndexed) { - if (doc.getNeedsIndexing()) { - Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("index finish: {0}", doc.getAtCorpusPath()), "indexDocuments"); - this.finishDocumentResolve(doc); - } - } + // Finish up. + for (final CdmDocumentDefinition doc : docsNotIndexed) { + Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("index finish: {0}", doc.getAtCorpusPath()), "indexDocuments"); + this.finishDocumentResolve(doc, strictValidation); } return true; @@ -1082,7 +1080,7 @@ private CompletableFuture loadFolderOrDocumentAsync(Stri * @see #fetchObjectAsync(String, CdmObject) */ public CompletableFuture fetchObjectAsync(final String objectPath) { - return fetchObjectAsync(objectPath, null).thenApply(cdmObject -> cdmObject != null ? (T) cdmObject : null); + return fetchObjectAsync(objectPath, null); } /** @@ -1097,9 +1095,7 @@ public CompletableFuture fetchObjectAsync(final String public CompletableFuture fetchObjectAsync( final String objectPath, final CdmObject cdmObject) { - return - fetchObjectAsync(objectPath, cdmObject, false, false) - .thenApply(fetchedCdmObject -> fetchedCdmObject != null ? (T) fetchedCdmObject : null); + return fetchObjectAsync(objectPath, cdmObject, null, false); } /** @@ -1117,9 +1113,9 @@ public CompletableFuture fetchObjectAsync( final String objectPath, final CdmObject cdmObject, final boolean shallowValidation) { - return - fetchObjectAsync(objectPath, cdmObject, shallowValidation, false) - .thenApply(fetchedCdmObject -> fetchedCdmObject != null ? (T) fetchedCdmObject : null); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setShallowValidation(shallowValidation); + return fetchObjectAsync(objectPath, cdmObject, resOpt, false); } /** @@ -1129,20 +1125,37 @@ public CompletableFuture fetchObjectAsync( * @param objectPath Object path, absolute or relative. * @param cdmObject Optional parameter. When provided, it is used to obtain the FolderPath and * the Namespace needed to create the absolute path from a relative path. - * @param shallowValidation Optional parameter. When provided, shallow validation in ResolveOptions is enabled, - * which logs errors regarding resolving/loading references as warnings. + * @param resOpt Optional parameter. Optional parameter. When provided, will use be used to + * determine how the symbols are resolved. + * @return The object obtained from the provided path. + */ + public CompletableFuture fetchObjectAsync( + final String objectPath, + final CdmObject cdmObject, + final ResolveOptions resOpt) { + return fetchObjectAsync(objectPath, cdmObject, resOpt, false); + } + + /** + * Fetches an object by the path from the corpus, with the CDM object specified. + * + * @param Type of the object to be fetched. + * @param objectPath Object path, absolute or relative. + * @param cdmObject Optional parameter. When provided, it is used to obtain the FolderPath and + * the Namespace needed to create the absolute path from a relative path. + * @param resOpt Optional parameter. Optional parameter. When provided, will use be used to + * determine how the symbols are resolved. * @param forceReload Optional parameter. When true, the document containing the requested object is reloaded from storage * to access any external changes made to the document since it may have been cached by the corpus. * @return The object obtained from the provided path. */ - CompletableFuture fetchObjectAsync( + public CompletableFuture fetchObjectAsync( final String objectPath, final CdmObject cdmObject, - final boolean shallowValidation, + final ResolveOptions resOpt, final boolean forceReload) { - // isRootManifestPath is required to deal with the load of the initial root manifest. - // In this case the the file name can be something different than a CDM CdmManifestDefinition, - // e.g.: "model.json". + + final ResolveOptions finalResOpt = resOpt != null ? resOpt : new ResolveOptions(); final String absolutePath = this.storage.createAbsoluteCorpusPath(objectPath, cdmObject); @@ -1156,53 +1169,45 @@ CompletableFuture fetchObjectAsync( } Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("request object: {0}", objectPath), "fetchObjectAsync"); + final CdmContainerDefinition newObj = this.loadFolderOrDocumentAsync(documentPath, forceReload).join(); - final String finalDocumentPath = documentPath; - final int finalDocumentNameIndex = documentNameIndex; - return this.loadFolderOrDocumentAsync(finalDocumentPath, forceReload).thenCompose(loadedCdmObject -> { - if (loadedCdmObject != null) { - final ResolveOptions resOpt = new ResolveOptions(); - // get imports and index each document that is loaded - if (loadedCdmObject instanceof CdmDocumentDefinition) { - resOpt.setWrtDoc((CdmDocumentDefinition) loadedCdmObject); - resOpt.setDirectives(new AttributeResolutionDirectiveSet()); - resOpt.setShallowValidation(shallowValidation); - - if (!((CdmDocumentDefinition) loadedCdmObject).indexIfNeededAsync(resOpt).join()) { - return null; - } - if (!((CdmDocumentDefinition)loadedCdmObject).isValid) { - Logger.error(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("The requested path: {0} involves a document that failed validation", objectPath), "fetchObjectAsync"); - return null; - } + if (newObj != null) { + // get imports and index each document that is loaded + if (newObj instanceof CdmDocumentDefinition) { + if (!((CdmDocumentDefinition) newObj).indexIfNeededAsync(finalResOpt, false).join()) { + return null; } - - if (Objects.equals(finalDocumentPath, absolutePath)) { - return CompletableFuture.completedFuture(loadedCdmObject); + if (!((CdmDocumentDefinition)newObj).isValid) { + Logger.error(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("The requested path: {0} involves a document that failed validation", objectPath), "fetchObjectAsync"); + return null; } + } - if (finalDocumentNameIndex == -1) { - return CompletableFuture.completedFuture(null); - } + if (Objects.equals(documentPath, absolutePath)) { + return CompletableFuture.completedFuture((T)newObj); + } - // trim off the document path to get the object path in the doc - final String remainingObjectPath = absolutePath.substring(finalDocumentNameIndex + 1); + if (documentNameIndex == -1) { + return CompletableFuture.completedFuture(null); + } - final CdmObject result = ((CdmDocumentDefinition) loadedCdmObject).fetchObjectFromDocumentPath(remainingObjectPath, resOpt); - if (null == result) { - Logger.error( - CdmCorpusDefinition.class.getSimpleName(), - this.ctx, - Logger.format("Could not find symbol '{0}' in document[{1}]", remainingObjectPath, loadedCdmObject.getAtCorpusPath()), - "fetchObjectAsync" - ); - } + // trim off the document path to get the object path in the doc + final String remainingObjectPath = absolutePath.substring(documentNameIndex + 1); - return CompletableFuture.completedFuture(result); + final CdmObject result = ((CdmDocumentDefinition) newObj).fetchObjectFromDocumentPath(remainingObjectPath, resOpt); + if (null == result) { + Logger.error( + CdmCorpusDefinition.class.getSimpleName(), + this.ctx, + Logger.format("Could not find symbol '{0}' in document[{1}]", remainingObjectPath, newObj.getAtCorpusPath()), + "fetchObjectAsync" + ); } - return CompletableFuture.completedFuture(null); - }); + return CompletableFuture.completedFuture((T)result); + } + + return CompletableFuture.completedFuture(null); } public void setEventCallback(EventCallback status) { @@ -1735,6 +1740,7 @@ private String findAddedAttributeIdentity(final CdmAttributeContext context) { * * @return The validation step that follows the completed step. */ + @Deprecated public CompletableFuture resolveReferencesAndValidateAsync( final CdmValidationStep stage, final CdmValidationStep stageThrough) { @@ -1768,7 +1774,7 @@ private CompletableFuture resolveReferencesAndValidateAsync( finalResolveOptions.setRelationshipDepth(0); for (final CdmDocumentDefinition doc : this.documentLibrary.listAllDocuments()) { - doc.indexIfNeededAsync(resOpt).join(); + doc.indexIfNeededAsync(resOpt, false).join(); } final boolean finishResolve = stageThrough == stage; @@ -2202,13 +2208,17 @@ private void resolveObjectDefinitions( resOpt.setIndexingDoc(null); } - private void finishDocumentResolve(final CdmDocumentDefinition doc) { + private void finishDocumentResolve(final CdmDocumentDefinition doc, final boolean strictValidation) { + boolean wasIndexedPreviously = doc.declarationsIndexed; + doc.setCurrentlyIndexing(false); - doc.setImportsIndexed(true); - doc.setNeedsIndexing(false); + doc.declarationsIndexed = true; + doc.setImportsIndexed(doc.isImportsIndexed() || strictValidation); + doc.setNeedsIndexing(!strictValidation); this.documentLibrary.markDocumentAsIndexed(doc); - if (doc.isValid) { + // if the document declarations were indexed previously, do not log again. + if (!wasIndexedPreviously && doc.isValid) { doc.getDefinitions().forEach(def -> { if (def.getObjectType() == CdmObjectType.EntityDef) { Logger.debug(CdmCorpusDefinition.class.getSimpleName(), this.ctx, Logger.format("indexed: '{0}'", def.getAtCorpusPath())); @@ -2489,7 +2499,7 @@ private void finishResolve() { // everything is resolved. List allDocuments = this.documentLibrary.listAllDocuments(); for (final CdmDocumentDefinition doc : allDocuments) { - this.finishDocumentResolve(doc); + this.finishDocumentResolve(doc, false); } } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmDocumentDefinition.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmDocumentDefinition.java index 5cb7c601ec..0acaf3a9ce 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmDocumentDefinition.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmDocumentDefinition.java @@ -29,6 +29,7 @@ public class CdmDocumentDefinition extends CdmObjectSimple implements CdmContain protected Map internalDeclarations; protected boolean isDirty = true; protected boolean isValid; + protected boolean declarationsIndexed; private ImportPriorities importPriorities; private boolean needsIndexing; private CdmDefinitionCollection definitions; @@ -126,18 +127,22 @@ public void setNamespace(final String namespace) { this.namespace = namespace; } + @Deprecated boolean isImportsIndexed() { return importsIndexed; } + @Deprecated void setImportsIndexed(final boolean importsIndexed) { this.importsIndexed = importsIndexed; } + @Deprecated boolean isCurrentlyIndexing() { return currentlyIndexing; } + @Deprecated void setCurrentlyIndexing(final boolean currentlyIndexing) { this.currentlyIndexing = currentlyIndexing; } @@ -369,8 +374,11 @@ public CompletableFuture refreshAsync(ResolveOptions resOpt) { } this.needsIndexing = true; + this.declarationsIndexed = false; + this.importPriorities = null; + this.importsIndexed = false; this.isValid = true; - return this.indexIfNeededAsync(resOpt); + return this.indexIfNeededAsync(resOpt, true); } /** @@ -378,10 +386,10 @@ public CompletableFuture refreshAsync(ResolveOptions resOpt) { * meant to be called externally at all. Please refrain from using it. */ @Deprecated - public CompletableFuture indexIfNeededAsync(final ResolveOptions resOpt) { + public CompletableFuture indexIfNeededAsync(final ResolveOptions resOpt, final boolean strictValidation) { return CompletableFuture.supplyAsync(() -> { - if (this.getNeedsIndexing()) { + if (this.getNeedsIndexing() && !this.currentlyIndexing) { if (this.getFolder() == null) { Logger.error( CdmDocumentDefinition.class.getSimpleName(), @@ -391,13 +399,17 @@ public CompletableFuture indexIfNeededAsync(final ResolveOptions resOpt ); return false; } + final CdmCorpusDefinition corpus = this.getFolder().getCorpus(); + final boolean finalStrictValidation = resOpt.getStrictValidation() != null ? resOpt.getStrictValidation() : strictValidation; + + if (finalStrictValidation) { + corpus.resolveImportsAsync(this, resOpt).join(); + } - corpus.resolveImportsAsync(this, resOpt).join(); corpus.getDocumentLibrary().markDocumentForIndexing(this); - return corpus.indexDocuments(resOpt); + return corpus.indexDocuments(resOpt, finalStrictValidation); } - return true; }); } @@ -422,7 +434,7 @@ public CompletableFuture saveAsAsync( final ResolveOptions resOpt = new ResolveOptions(this, this.getCtx().getCorpus().getDefaultResolutionDirectives()); - if (!this.indexIfNeededAsync(resOpt).join()) { + if (!this.indexIfNeededAsync(resOpt, false).join()) { Logger.error( CdmDocumentDefinition.class.getSimpleName(), this.getCtx(), diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmEntityDefinition.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmEntityDefinition.java index 513cd5e2ff..21a1a21b72 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmEntityDefinition.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmEntityDefinition.java @@ -411,7 +411,7 @@ public CompletableFuture createResolvedEntityAsync( } // if the wrtDoc needs to be indexed (like it was just modified) then do that first - if (!finalResOpt.getWrtDoc().indexIfNeededAsync(finalResOpt).join()) { + if (!finalResOpt.getWrtDoc().indexIfNeededAsync(finalResOpt, true).join()) { Logger.error(CdmEntityDefinition.class.getSimpleName(), this.getCtx(), "Couldn't index source document.", "createResolvedEntityAsync"); return null; } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmLocalEntityDeclarationDefinition.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmLocalEntityDeclarationDefinition.java index 6d0ecb4bed..786a509ce7 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmLocalEntityDeclarationDefinition.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmLocalEntityDeclarationDefinition.java @@ -5,6 +5,8 @@ import com.google.common.base.Strings; import com.microsoft.commondatamodel.objectmodel.enums.CdmObjectType; +import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapter; +import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapterBase; import com.microsoft.commondatamodel.objectmodel.utilities.CopyOptions; import com.microsoft.commondatamodel.objectmodel.utilities.Errors; import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; @@ -180,29 +182,42 @@ public void setLastFileModifiedTime(final OffsetDateTime value) { @Override public CompletableFuture fileStatusCheckAsync() { return CompletableFuture.runAsync(() -> { - final String fullPath = - this.getCtx() - .getCorpus() - .getStorage() - .createAbsoluteCorpusPath(this.getEntityPath(), this.getInDocument()); - final OffsetDateTime modifiedTime = getCtx() - .getCorpus() - .computeLastModifiedTimeAsync(fullPath, this) - .join(); - - for (final CdmDataPartitionDefinition partition : getDataPartitions()) { - partition.fileStatusCheckAsync().join(); - } - - for (final CdmDataPartitionPatternDefinition pattern : getDataPartitionPatterns()) { + StorageAdapter storageAdapterInterface = this.getCtx().getCorpus().getStorage().fetchAdapter(this.getInDocument().getNamespace()); + StorageAdapterBase.CacheContext cacheContext = null; + if(storageAdapterInterface instanceof StorageAdapterBase) { + cacheContext = ((StorageAdapterBase)storageAdapterInterface).createFileQueryCacheContext(); + } + try { + final String fullPath = + this.getCtx() + .getCorpus() + .getStorage() + .createAbsoluteCorpusPath(this.getEntityPath(), this.getInDocument()); + final OffsetDateTime modifiedTime = getCtx() + .getCorpus() + .computeLastModifiedTimeAsync(fullPath, this) + .join(); + + for (final CdmDataPartitionPatternDefinition pattern : getDataPartitionPatterns()) { pattern.fileStatusCheckAsync().join(); - } + } - // update modified times - setLastFileStatusCheckTime(OffsetDateTime.now(ZoneOffset.UTC)); - setLastFileModifiedTime(TimeUtils.maxTime(modifiedTime, getLastFileModifiedTime())); + for (final CdmDataPartitionDefinition partition : getDataPartitions()) { + partition.fileStatusCheckAsync().join(); + } - reportMostRecentTimeAsync(getLastFileModifiedTime()).join(); + // update modified times + setLastFileStatusCheckTime(OffsetDateTime.now(ZoneOffset.UTC)); + setLastFileModifiedTime(TimeUtils.maxTime(modifiedTime, getLastFileModifiedTime())); + + reportMostRecentTimeAsync(getLastFileModifiedTime()).join(); + } + finally { + if(cacheContext != null) + { + cacheContext.dispose(); + } + } }); } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmManifestDefinition.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmManifestDefinition.java index 5db41a18b8..9f6c01417a 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmManifestDefinition.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/CdmManifestDefinition.java @@ -4,6 +4,8 @@ package com.microsoft.commondatamodel.objectmodel.cdm; import com.microsoft.commondatamodel.objectmodel.persistence.CdmConstants; +import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapter; +import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapterBase; import com.microsoft.commondatamodel.objectmodel.enums.CdmObjectType; import com.microsoft.commondatamodel.objectmodel.enums.CdmRelationshipDiscoveryStyle; import com.microsoft.commondatamodel.objectmodel.utilities.*; @@ -350,28 +352,42 @@ public CompletableFuture populateManifestRelationshipsAsync(final CdmRelat @Override public CompletableFuture fileStatusCheckAsync() { return CompletableFuture.runAsync(() -> { - final OffsetDateTime modifiedTime = getCtx().getCorpus() - .computeLastModifiedTimeFromObjectAsync(this).join(); + StorageAdapter storageAdapterInterface = this.getCtx().getCorpus().getStorage().fetchAdapter(this.getInDocument().getNamespace()); + StorageAdapterBase.CacheContext cacheContext = null; + if(storageAdapterInterface instanceof StorageAdapterBase) { + cacheContext = ((StorageAdapterBase)storageAdapterInterface).createFileQueryCacheContext(); + } + try { + + final OffsetDateTime modifiedTime = getCtx().getCorpus() + .computeLastModifiedTimeFromObjectAsync(this).join(); + + for (final CdmEntityDeclarationDefinition entity : getEntities()) { + entity.fileStatusCheckAsync().join(); + } - for (final CdmEntityDeclarationDefinition entity : getEntities()) { - entity.fileStatusCheckAsync().join(); - } + for (final CdmManifestDeclarationDefinition subManifest : getSubManifests()) { + subManifest.fileStatusCheckAsync().join(); + } - for (final CdmManifestDeclarationDefinition subManifest : getSubManifests()) { - subManifest.fileStatusCheckAsync().join(); - } + setLastFileStatusCheckTime(OffsetDateTime.now(ZoneOffset.UTC)); - setLastFileStatusCheckTime(OffsetDateTime.now(ZoneOffset.UTC)); + if (getLastFileModifiedTime() == null) { + setLastFileModifiedTime(getFileSystemModifiedTime()); + } - if (getLastFileModifiedTime() == null) { - setLastFileModifiedTime(getFileSystemModifiedTime()); + // reload the manifest if it has been updated in the file system + if (!Objects.equals(modifiedTime, getFileSystemModifiedTime())) { + reloadAsync().join(); + setLastFileModifiedTime(TimeUtils.maxTime(modifiedTime, getLastFileModifiedTime())); + setFileSystemModifiedTime(getLastFileModifiedTime()); + } } - - // reload the manifest if it has been updated in the file system - if (!Objects.equals(modifiedTime, getFileSystemModifiedTime())) { - reloadAsync().join(); - setLastFileModifiedTime(TimeUtils.maxTime(modifiedTime, getLastFileModifiedTime())); - setFileSystemModifiedTime(getLastFileModifiedTime()); + finally{ + if(cacheContext != null) + { + cacheContext.dispose(); + } } }); } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentLibrary.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentLibrary.java index c863269af8..44b65841b6 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentLibrary.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentLibrary.java @@ -98,8 +98,11 @@ List listDocsNotIndexed() { this.documentLibraryLock.lock(); List list = new ArrayList<>(); + // gets all the documents that needs indexing and set the currentlyIndexing flag to true. for (Map.Entry entry : this.docsNotIndexed.entrySet()) { - list.add(entry.getKey()); + CdmDocumentDefinition doc = entry.getKey(); + doc.setCurrentlyIndexing(true); + list.add(doc); } this.documentLibraryLock.unlock(); diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/projections/CdmOperationExcludeAttributes.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/projections/CdmOperationExcludeAttributes.java index 1766d7e23c..df55604a59 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/projections/CdmOperationExcludeAttributes.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/cdm/projections/CdmOperationExcludeAttributes.java @@ -7,15 +7,20 @@ import com.microsoft.commondatamodel.objectmodel.cdm.CdmCorpusContext; import com.microsoft.commondatamodel.objectmodel.cdm.CdmObject; import com.microsoft.commondatamodel.objectmodel.cdm.CdmObjectBase; +import com.microsoft.commondatamodel.objectmodel.enums.CdmAttributeContextType; import com.microsoft.commondatamodel.objectmodel.enums.CdmObjectType; import com.microsoft.commondatamodel.objectmodel.enums.CdmOperationType; +import com.microsoft.commondatamodel.objectmodel.resolvedmodel.projections.ProjectionAttributeState; import com.microsoft.commondatamodel.objectmodel.resolvedmodel.projections.ProjectionAttributeStateSet; import com.microsoft.commondatamodel.objectmodel.resolvedmodel.projections.ProjectionContext; +import com.microsoft.commondatamodel.objectmodel.resolvedmodel.projections.ProjectionResolutionCommonUtil; import com.microsoft.commondatamodel.objectmodel.utilities.*; import com.microsoft.commondatamodel.objectmodel.utilities.logger.Logger; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; /** * Class to handle ExcludeAttributes operations @@ -28,6 +33,7 @@ public CdmOperationExcludeAttributes(final CdmCorpusContext ctx) { super(ctx); this.setObjectType(CdmObjectType.OperationExcludeAttributesDef); this.setType(CdmOperationType.ExcludeAttributes); + this.excludeAttributes = new ArrayList<>(); } @Override @@ -79,7 +85,7 @@ public boolean isDerivedFrom(String baseDef, ResolveOptions resOpt) { public boolean validate() { ArrayList missingFields = new ArrayList<>(); - if (this.excludeAttributes == null || this.excludeAttributes.size() == 0) { + if (this.excludeAttributes == null) { missingFields.add("excludeAttributes"); } if (missingFields.size() > 0) { @@ -117,8 +123,58 @@ public boolean visit(final String pathFrom, final VisitCallback preChildren, fin */ @Override @Deprecated - public ProjectionAttributeStateSet appendProjectionAttributeState(ProjectionContext projCtx, ProjectionAttributeStateSet projAttrStateSet, CdmAttributeContext attrCtx) { - Logger.error(TAG, this.getCtx(), "Projection operation not implemented yet.", "appendProjectionAttributeState"); - return null; + public ProjectionAttributeStateSet appendProjectionAttributeState(ProjectionContext projCtx, ProjectionAttributeStateSet projOutputSet, CdmAttributeContext attrCtx) { + // Create a new attribute context for the operation + AttributeContextParameters attrCtxOpExcludeAttrsParam = new AttributeContextParameters(); + attrCtxOpExcludeAttrsParam.setUnder(attrCtx); + attrCtxOpExcludeAttrsParam.setType(CdmAttributeContextType.OperationExcludeAttributes); + attrCtxOpExcludeAttrsParam.setName("operation/index" + this.getIndex() + "/operationExcludeAttributes"); + + CdmAttributeContext attrCtxOpExcludeAttrs = CdmAttributeContext.createChildUnder(projCtx.getProjectionDirective().getResOpt(), attrCtxOpExcludeAttrsParam); + + // Get the top-level attribute names of the attributes to exclude + // We use the top-level names because the exclude list may contain a previous name our current resolved attributes had + Map topLevelExcludeAttributeNames = ProjectionResolutionCommonUtil.getTopList(projCtx, this.excludeAttributes); + + // Iterate through all the projection attribute states generated from the source's resolved attributes + // Each projection attribute state contains a resolved attribute that it is corresponding to + for (ProjectionAttributeState currentPAS : projCtx.getCurrentAttributeStateSet().getValues()) { + // Check if the current projection attribute state's resolved attribute is in the list of attributes to exclude + // If this attribute is not in the exclude list, then we are including it in the output + if (!topLevelExcludeAttributeNames.containsKey(currentPAS.getCurrentResolvedAttribute().getResolvedName())) { + // Create a new attribute context for the attribute that we are including + AttributeContextParameters attrCtxAddedAttrParam = new AttributeContextParameters(); + attrCtxAddedAttrParam.setUnder(attrCtx); + attrCtxAddedAttrParam.setType(CdmAttributeContextType.AttributeDefinition); + attrCtxAddedAttrParam.setName(currentPAS.getCurrentResolvedAttribute().getResolvedName()); + + CdmAttributeContext attrCtxAddedAttr = CdmAttributeContext.createChildUnder(projCtx.getProjectionDirective().getResOpt(), attrCtxAddedAttrParam); + + // Create a projection attribute state for the included attribute + // We only create projection attribute states for attributes that are not in the exclude list + // Add the current projection attribute state as the previous state of the new projection attribute state + ProjectionAttributeState newPAS = new ProjectionAttributeState(projOutputSet.getCtx()); + newPAS.setCurrentResolvedAttribute(currentPAS.getCurrentResolvedAttribute()); + newPAS.setPreviousStateList(new ArrayList<>(Arrays.asList(currentPAS))); + + projOutputSet.add(newPAS); + } else { + // The current projection attribute state's resolved attribute is in the exclude list + + // Get the attribute name the way it appears in the exclude list + // For our attribute context, we want to use the attribute name the attribute has in the exclude list rather than its current name + String excludeAttributeName = topLevelExcludeAttributeNames.get(currentPAS.getCurrentResolvedAttribute().getResolvedName()); + + // Create a new attribute context for the excluded attribute + AttributeContextParameters attrCtxExcludedAttrParam = new AttributeContextParameters(); + attrCtxExcludedAttrParam.setUnder(attrCtxOpExcludeAttrs); + attrCtxExcludedAttrParam.setType(CdmAttributeContextType.AttributeDefinition); + attrCtxExcludedAttrParam.setName(excludeAttributeName); + + CdmAttributeContext attrCtxExcludedAttr = CdmAttributeContext.createChildUnder(projCtx.getProjectionDirective().getResOpt(), attrCtxExcludedAttrParam); + } + } + + return projOutputSet; } } \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/E2ERelationshipPersistence.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/E2ERelationshipPersistence.java index 318465f99c..ab4f99400d 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/E2ERelationshipPersistence.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/E2ERelationshipPersistence.java @@ -7,11 +7,14 @@ import com.microsoft.commondatamodel.objectmodel.cdm.CdmE2ERelationship; import com.microsoft.commondatamodel.objectmodel.enums.CdmObjectType; import com.microsoft.commondatamodel.objectmodel.persistence.cdmfolder.types.E2ERelationship; +import com.microsoft.commondatamodel.objectmodel.utilities.StringUtils; public class E2ERelationshipPersistence { public static CdmE2ERelationship fromData(final CdmCorpusContext ctx, final E2ERelationship dataObj) { final CdmE2ERelationship relationship = ctx.getCorpus().makeObject(CdmObjectType.E2ERelationshipDef); - relationship.setName(dataObj.getName()); + if (!StringUtils.isNullOrTrimEmpty(dataObj.getName())) { + relationship.setName(dataObj.getName()); + } relationship.setFromEntity(dataObj.getFromEntity()); relationship.setFromEntityAttribute(dataObj.getFromEntityAttribute()); relationship.setToEntity(dataObj.getToEntity()); @@ -21,7 +24,9 @@ public static CdmE2ERelationship fromData(final CdmCorpusContext ctx, final E2ER public static E2ERelationship toData(final CdmE2ERelationship instance) { final E2ERelationship e2ERelationship = new E2ERelationship(); - e2ERelationship.setName(instance.getName()); + if (!StringUtils.isNullOrTrimEmpty(instance.getName())) { + e2ERelationship.setName(instance.getName()); + } e2ERelationship.setFromEntity(instance.getFromEntity()); e2ERelationship.setFromEntityAttribute(instance.getFromEntityAttribute()); e2ERelationship.setToEntity(instance.getToEntity()); diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/AttributeResolutionContext.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/AttributeResolutionContext.java index 499370507e..19535f41e6 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/AttributeResolutionContext.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/AttributeResolutionContext.java @@ -40,6 +40,18 @@ public AttributeResolutionContext(final ResolveOptions resOpt, final CdmAttribut this.resOpt = resOpt.copy(); if (resGuide != null) { + if (this.applierCaps == null) { + this.applierCaps = new AttributeResolutionApplierCapabilities(); + this.applierCaps.canAlterDirectives = false; + this.applierCaps.canAlterDirectives = false; + this.applierCaps.canCreateContext = false; + this.applierCaps.canRemove = false; + this.applierCaps.canAttributeModify = false; + this.applierCaps.canGroupAdd = false; + this.applierCaps.canRoundAdd = false; + this.applierCaps.canAttributeAdd = false; + } + if (resGuide.getRemoveAttribute() != null) { addApplier(PrimitiveAppliers.isRemoved); } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/projections/ProjectionResolutionCommonUtil.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/projections/ProjectionResolutionCommonUtil.java index eb5a01b178..94dc8d90d9 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/projections/ProjectionResolutionCommonUtil.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/resolvedmodel/projections/ProjectionResolutionCommonUtil.java @@ -138,22 +138,32 @@ public static List getLeafList(ProjectionContext projC } /** - * Get top node of the projection state tree for non-polymorphic scenarios + * Gets the names of the top-level nodes in the projection state tree (for non-polymorphic scenarios) that match a set of attribute names * * @deprecated This function is extremely likely to be removed in the public interface, and not * meant to be called externally at all. Please refrain from using it. */ @Deprecated - public static List getTop(ProjectionContext projCtx, String attrName) { - SearchResult result = new SearchResult(); - for (ProjectionAttributeState top : projCtx.getCurrentAttributeStateSet().getValues()) { - SearchStructure st = new SearchStructure(); - st = SearchStructure.buildStructure(top, top, attrName, st, false, 0); - if (st != null && st.getResult().getFoundFlag() == true) { - result = st.getResult(); + public static Map getTopList(ProjectionContext projCtx, List attrNames) { + // This dictionary contains a mapping from the top-level name of an attribute + // to the attribute name the top-level name was derived from (the name contained in the given list) + Map topLevelAttributeNames = new HashMap<>(); + + // Iterate through each attribute name in the list and search for their top-level names + for (String attrName : attrNames) { + // Iterate through each projection attribute state in the current set and check if its + // current resolved attribute's name is the top-level name of the current attrName + for (ProjectionAttributeState top : projCtx.getCurrentAttributeStateSet().getValues()) { + SearchStructure st = new SearchStructure(); + st = SearchStructure.buildStructure(top, top, attrName, st, false, 0); + // Found the top-level name + if (st != null && st.getResult().getFoundFlag() == true) { + // Create a mapping from the top-level name of the attribute to the name it has in the list + topLevelAttributeNames.put(top.getCurrentResolvedAttribute().getResolvedName(), attrName); + } } } - return result != null ? result.getTop() : null; + return topLevelAttributeNames; } /** diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AdlsAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AdlsAdapter.java index 476b200188..e0d135f6d5 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AdlsAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AdlsAdapter.java @@ -20,6 +20,7 @@ import java.net.URISyntaxException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; +import java.time.Duration; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; @@ -37,13 +38,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class AdlsAdapter extends NetworkAdapter implements StorageAdapter { +public class AdlsAdapter extends NetworkAdapter { + protected static final Duration ADLS_DEFAULT_TIMEOUT = Duration.ofMillis(5000); static final String TYPE = "adls"; private final static Logger LOGGER = LoggerFactory.getLogger(AdlsAdapter.class); private String root; private String hostname; - private String locationHint; /** * The map from corpus path to adapter path. @@ -64,27 +65,28 @@ public class AdlsAdapter extends NetworkAdapter implements StorageAdapter { * The sub-path. */ private String subPath = ""; + private Map fileModifiedTimeCache = new LinkedHashMap(); private AdlsAdapterAuthenticator adlsAdapterAuthenticator; public AdlsAdapter(final String hostname, final String root, final String tenant, final String clientId, final String secret) { + this(); this.updateRoot(root); this.updateHostname(hostname); - this.httpClient = new CdmHttpClient(); this.adlsAdapterAuthenticator = new AdlsAdapterAuthenticator(tenant, clientId, secret); } public AdlsAdapter(final String hostname, final String root, final String sharedKey) { + this(); this.updateRoot(root); this.updateHostname(hostname); - this.httpClient = new CdmHttpClient(); this.adlsAdapterAuthenticator = new AdlsAdapterAuthenticator(sharedKey); } public AdlsAdapter(final String hostname, final String root, final TokenProvider tokenProvider) { + this(); this.updateRoot(root); this.updateHostname(hostname); - this.httpClient = new CdmHttpClient(); this.adlsAdapterAuthenticator = new AdlsAdapterAuthenticator(tokenProvider); } @@ -93,12 +95,15 @@ public AdlsAdapter(final String hostname, final String root, final TokenProvider */ public AdlsAdapter() { this.httpClient = new CdmHttpClient(); + this.setTimeout(ADLS_DEFAULT_TIMEOUT); } + @Override public boolean canRead() { return true; } + @Override public CompletableFuture readAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { final CdmHttpRequest cdmHttpRequest; @@ -114,10 +119,12 @@ public CompletableFuture readAsync(final String corpusPath) { }); } + @Override public boolean canWrite() { return true; } + @Override public CompletableFuture writeAsync(final String corpusPath, final String data) { if (!ensurePath(root + corpusPath)) { throw new IllegalArgumentException("Could not create folder for document '" + corpusPath + "'"); @@ -141,6 +148,7 @@ public CompletableFuture writeAsync(final String corpusPath, final String }); } + @Override public String createAdapterPath(final String corpusPath) { final String formattedCorpusPath = this.formatCorpusPath(corpusPath); if (formattedCorpusPath == null) { @@ -153,6 +161,7 @@ public String createAdapterPath(final String corpusPath) { return "https://" + hostname + root + this.formatCorpusPath(corpusPath); } + @Override public String createCorpusPath(final String adapterPath) { if (!StringUtils.isNullOrEmpty(adapterPath)) { @@ -177,32 +186,48 @@ public String createCorpusPath(final String adapterPath) { return null; } + @Override public void clearCache() { + this.fileModifiedTimeCache.clear(); } - public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { + @Override + public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { - final String url = this.createAdapterPath(corpusPath); - - try { - final CdmHttpRequest request = this.buildRequest(url, "HEAD"); - CdmHttpResponse cdmResponse = executeRequest(request).join(); + OffsetDateTime cachedValue = this.getIsCacheEnabled() ? this.fileModifiedTimeCache.get(corpusPath) : null; + if(cachedValue != null) + { + return cachedValue; + } + else{ + final String url = this.createAdapterPath(corpusPath); - if (cdmResponse.getStatusCode() == HttpURLConnection.HTTP_OK) { - return DateUtils.parseDate(cdmResponse.getResponseHeaders().get("Last-Modified")) - .toInstant() - .atOffset(ZoneOffset.UTC); + try { + final CdmHttpRequest request = this.buildRequest(url, "HEAD"); + CdmHttpResponse cdmResponse = executeRequest(request).join(); + + if (cdmResponse.getStatusCode() == HttpURLConnection.HTTP_OK) { + OffsetDateTime lastTime = + DateUtils.parseDate(cdmResponse.getResponseHeaders().get("Last-Modified")) + .toInstant() + .atOffset(ZoneOffset.UTC); + if(this.getIsCacheEnabled()) { + this.fileModifiedTimeCache.put(corpusPath, lastTime); + } + return lastTime; + } + // We're capturing CompletionException as this is of interest to us, it wraps any exception created inside + // the body of the executeRequest method. + } catch (CompletionException ex) { + LOGGER.debug("ADLS file not found, skipping last modified time calculation for it.", ex.getCause()); } - // We're capturing CompletionException as this is of interest to us, it wraps any exception created inside - // the body of the executeRequest method. - } catch (CompletionException ex) { - LOGGER.debug("ADLS file not found, skipping last modified time calculation for it.", ex.getCause()); + + return null; } - - return null; }); } + @Override public CompletableFuture> fetchAllFilesAsync(final String folderCorpusPath) { return CompletableFuture.supplyAsync(() -> { if (folderCorpusPath == null) { @@ -237,7 +262,16 @@ public CompletableFuture> fetchAllFilesAsync(final String folderCor String nameWithoutSubPath = this.subPath.length() > 0 && name.startsWith(this.subPath) ? name.substring(this.subPath.length() + 1) : name; - result.add(this.formatCorpusPath(nameWithoutSubPath)); + String filepath = this.formatCorpusPath(nameWithoutSubPath); + result.add(filepath); + + OffsetDateTime lastTime = DateUtils.parseDate(path.get("lastModified").asText()) + .toInstant() + .atOffset(ZoneOffset.UTC); + + if(this.getIsCacheEnabled()) { + this.fileModifiedTimeCache.put(filepath, lastTime); + } } } } @@ -377,16 +411,6 @@ private boolean ensurePath(final String pathFor) { return pathFor.lastIndexOf("/") != -1; } - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return this.locationHint; - } - @Override public String fetchConfig() { final ObjectNode resultConfig = JsonNodeFactory.instance.objectNode(); @@ -405,8 +429,9 @@ public String fetchConfig() { configObject.set(stringJsonNodeEntry.getKey(), stringJsonNodeEntry.getValue()); } - if (this.locationHint != null) { - configObject.put("locationHint", this.locationHint); + String locationHint = this.getLocationHint(); + if (locationHint != null) { + configObject.put("locationHint", locationHint); } resultConfig.set("config", configObject); try { @@ -443,7 +468,7 @@ public void updateConfig(final String config) throws IOException { configsJson.get("clientId").asText(), configsJson.has("secret") ? configsJson.get("secret").asText() : null); } - this.locationHint = configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null; + this.setLocationHint(configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null); } private void updateRoot(String value) { diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AzureStorageAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AzureStorageAdapter.java index 38d525bff1..bb2075bde6 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AzureStorageAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/AzureStorageAdapter.java @@ -33,7 +33,7 @@ import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; -public class AzureStorageAdapter implements StorageAdapter { +public class AzureStorageAdapter extends StorageAdapterBase { // TODO-BQ: 8/7/2019 Move to TimeUtils class private static final String RFC_1123_DATETIME_FORMAT = "EEE, dd MMM yyyy HH:mm:ss zzz"; @@ -145,32 +145,6 @@ public String createCorpusPath(final String adapterPath) { return null; } - public void clearCache() { - } - - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return this.locationHint; - } - - @Override - public String fetchConfig() { - throw new UnsupportedOperationException("UNIMPLEMENTED METHOD"); - } - - public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { - return CompletableFuture.completedFuture(null); - } - - public CompletableFuture> fetchAllFilesAsync(final String folderCorpusPath) { - return CompletableFuture.completedFuture(null); - } - private Future generateBearerToken() { final ClientCredential clientCredentials = new ClientCredential(clientId, secret); return context.acquireToken(resource, clientCredentials, null); @@ -214,9 +188,4 @@ private boolean ensurePath(final String pathFor) { // Folders don't explicitly exist in an Azure Storage FS return pathFor.lastIndexOf("/") != -1; } - - @Override - public void updateConfig(final String config) throws IOException { - throw new UnsupportedOperationException("UNIMPLEMENTED METHOD"); - } } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/CdmStandardsAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/CdmStandardsAdapter.java index 5413a04e99..a5844a72c5 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/CdmStandardsAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/CdmStandardsAdapter.java @@ -22,13 +22,12 @@ /** * An adapter pre-configured to read the standard schema files published by CDM. */ -public class CdmStandardsAdapter extends NetworkAdapter implements StorageAdapter { +public class CdmStandardsAdapter extends NetworkAdapter { private static final String STANDARDS_ENDPOINT = "https://cdm-schema.microsoft.com"; static final String TYPE = "cdm-standards"; private String root; - private String locationHint; /** * Constructs a CdmStandardsAdapter with default parameters. @@ -56,8 +55,9 @@ public String fetchConfig() { configObject.set(stringJsonNodeEntry.getKey(), stringJsonNodeEntry.getValue()); } - if (this.locationHint != null){ - configObject.put("locationHint", this.locationHint); + String locationHint = getLocationHint(); + if (locationHint != null){ + configObject.put("locationHint", locationHint); } if (this.root != null){ @@ -72,10 +72,12 @@ public String fetchConfig() { } } + @Override public boolean canRead() { return true; } + @Override public CompletableFuture readAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { final String path = root + corpusPath; @@ -89,30 +91,12 @@ public CompletableFuture readAsync(final String corpusPath) { }); } - public boolean canWrite() { - return false; - } - - public CompletableFuture writeAsync(final String corpusPath, final String data) { - throw new UnsupportedOperationException(); - } - - public void clearCache() { - // Left blank intentionally - } - - public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { - return CompletableFuture.completedFuture(OffsetDateTime.now()); - } - - public CompletableFuture> fetchAllFilesAsync(final String currFullPath) { - return CompletableFuture.completedFuture(null); - } - + @Override public String createAdapterPath(final String corpusPath) { return getAbsolutePath() + corpusPath; } + @Override public String createCorpusPath(final String adapterPath) { if (Strings.isNullOrEmpty(adapterPath) || !adapterPath.startsWith(getAbsolutePath())) { return null; @@ -129,20 +113,10 @@ public void updateConfig(final String config) throws IOException { this.updateNetworkConfig(config); final JsonNode configsJson = JMapper.MAP.readTree(config); - this.locationHint = configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null; + setLocationHint(configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null); this.root = configsJson.has("root") ? configsJson.get("root").asText() : null; } - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return this.locationHint; - } - public void setRoot(final String root) { this.root = root; } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/GithubAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/GithubAdapter.java index 3bdcb20293..c4d210a132 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/GithubAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/GithubAdapter.java @@ -25,15 +25,13 @@ * @deprecated Please use the CdmStandardsAdapter instead. */ @Deprecated -public class GithubAdapter extends NetworkAdapter implements StorageAdapter { +public class GithubAdapter extends NetworkAdapter { private static final String ghHost = "raw.githubusercontent.com"; private static final String ghPath = "/Microsoft/CDM/master/schemaDocuments"; private static final String ghRawRoot = "https://" + ghHost + ghPath; static final String TYPE = "github"; - private String locationHint; - /** * Default constructor. */ @@ -51,8 +49,9 @@ public String fetchConfig() { configObject.set(stringJsonNodeEntry.getKey(), stringJsonNodeEntry.getValue()); } - if (this.locationHint != null){ - configObject.put("locationHint", this.locationHint); + String locationHint = getLocationHint(); + if (locationHint != null){ + configObject.put("locationHint", locationHint); } resultConfig.set("config", configObject); try { @@ -62,10 +61,12 @@ public String fetchConfig() { } } + @Override public boolean canRead() { return true; } + @Override public CompletableFuture readAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { @@ -82,31 +83,12 @@ public CompletableFuture readAsync(final String corpusPath) { }); } - public boolean canWrite() { - return false; - } - - public CompletableFuture writeAsync(final String corpusPath, final String data) { - return CompletableFuture.completedFuture(null); - } - - public void clearCache() { - // Left blank intentionally - } - - public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { - return CompletableFuture.completedFuture(OffsetDateTime.now()); - } - - public CompletableFuture> fetchAllFilesAsync(final String currFullPath) { - // TODO - return CompletableFuture.completedFuture(null); - } - + @Override public String createAdapterPath(final String corpusPath) { return GithubAdapter.ghRawRoot + corpusPath; } + @Override public String createCorpusPath(final String adapterPath) { final String ghRoot = GithubAdapter.ghRawRoot; @@ -128,16 +110,6 @@ public void updateConfig(final String config) throws IOException { this.updateNetworkConfig(config); final JsonNode configsJson = JMapper.MAP.readTree(config); - this.locationHint = configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null; - } - - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return this.locationHint; + this.setLocationHint(configsJson.has("locationHint") ? configsJson.get("locationHint").asText() : null); } } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/LocalAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/LocalAdapter.java index d2ad148ece..c3d5b311bf 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/LocalAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/LocalAdapter.java @@ -31,13 +31,12 @@ /** * Implementation of the storage adapter interface which operates over a local filesystem. */ -public class LocalAdapter implements StorageAdapter { +public class LocalAdapter extends StorageAdapterBase { private static final Logger LOGGER = LoggerFactory.getLogger(LocalAdapter.class); static final String TYPE = "local"; private String root; private String fullRoot; - private String locationHint; public LocalAdapter(final String root) { this.root = root; @@ -57,8 +56,10 @@ public String fetchConfig() { final ObjectNode configObject = JsonNodeFactory.instance.objectNode(); configObject.put("root", this.root); - if (this.locationHint != null) { - configObject.put("locationHint", this.locationHint); + + String locationHint = this.getLocationHint(); + if (locationHint != null) { + configObject.put("locationHint", locationHint); } resultConfig.put("config", configObject); @@ -69,10 +70,12 @@ public String fetchConfig() { } } + @Override public boolean canRead() { return true; } + @Override public CompletableFuture readAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { final String path = createAdapterPath(corpusPath); @@ -90,10 +93,12 @@ public CompletableFuture readAsync(final String corpusPath) { }); } + @Override public boolean canWrite() { return true; } + @Override public CompletableFuture writeAsync(final String corpusPath, final String data) { return CompletableFuture.runAsync(() -> { // ensure that the path exists before trying to write the file @@ -117,6 +122,7 @@ public CompletableFuture dirExists(final String folderPath) { return CompletableFuture.supplyAsync(() -> Files.isDirectory(Paths.get(createAdapterPath(folderPath)))); } + @Override public String createAdapterPath(String corpusPath) { final Pair pathTuple = StorageUtils.splitNamespacePath(corpusPath); if (pathTuple == null) { @@ -132,11 +138,7 @@ public String createAdapterPath(String corpusPath) { return convertPathToAbsolutePath(Paths.get(Paths.get(System.getProperty("user.dir"), this.fullRoot).toString(), corpusPath).toString()); } - public void clearCache() { - // Intended to return none. - return; - } - + @Override public String createCorpusPath(final String adapterPath) { if (StringUtils.isNullOrTrimEmpty(adapterPath) || adapterPath.startsWith("http")) { return null; @@ -161,6 +163,7 @@ public String createCorpusPath(final String adapterPath) { return null; // signal that we didn't recognize path as one for this adapter } + @Override public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { return CompletableFuture.supplyAsync(() -> { final Path adapterPath = Paths.get(this.createAdapterPath(corpusPath)); @@ -179,6 +182,7 @@ public CompletableFuture computeLastModifiedTimeAsync(final Stri }); } + @Override public CompletableFuture> fetchAllFilesAsync(final String folderCorpusPath) { // Returns a list corpus paths to all files and folders at or under the // provided corpus path to a folder @@ -261,16 +265,6 @@ private String convertPathToAbsolutePath(final String path) { } } - @Override - public String getLocationHint() { - return locationHint; - } - - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - /** * @deprecated This function is extremely likely to be removed in the public interface, and not meant * to be called externally at all. Please refrain from using it. @@ -295,7 +289,7 @@ public void updateConfig(final String config) throws IOException { } this.root = configsJson.get("root").asText(); if (configsJson.has("locationHint")) { - this.locationHint = configsJson.get("locationHint").asText(); + this.setLocationHint(configsJson.get("locationHint").asText()); } this.fullRoot = new File(this.root).toString(); } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/NetworkAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/NetworkAdapter.java index 353b348b1f..6625d3aa1f 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/NetworkAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/NetworkAdapter.java @@ -27,9 +27,9 @@ * If a user doesn't specify timeout, maximutimeout or number of retries in the config under 'httpConfig' property * default values will be used as specified in the class. */ -public abstract class NetworkAdapter implements StorageAdapter { +public abstract class NetworkAdapter extends StorageAdapterBase { // Use some default values in the case a user doesn't set them up. - private static final Duration DEFAULT_TIMEOUT = Duration.ofMillis(5000); + protected static final Duration DEFAULT_TIMEOUT = Duration.ofMillis(5000); private static final Duration DEFAULT_MAXIMUM_TIMEOUT = Duration.ofMillis(20000); private static final int DEFAULT_NUMBER_OF_RETRIES = 2; private static final int DEFAULT_SHORTEST_TIME_WAIT = 500; @@ -39,16 +39,6 @@ public abstract class NetworkAdapter implements StorageAdapter { protected int numberOfRetries = DEFAULT_NUMBER_OF_RETRIES; protected CdmHttpClient.Callback waitTimeCallback = NetworkAdapter::defaultCallback; - /** - * The default network adapter constructor called when the object is created by a user through code. - */ - protected NetworkAdapter() { - } - - // TODO-BQ: Why did we removed the setting field part? Should we call updateNetworkConfig(configs)? - protected NetworkAdapter(final String configs) throws IOException { - } - public CdmHttpClient getHttpClient() { return httpClient; } @@ -78,7 +68,7 @@ public int getNumberOfRetries() { } public void setNumberOfRetries(int numberOfRetries) { - this.numberOfRetries = numberOfRetries; + this.numberOfRetries = numberOfRetries < 0 ? DEFAULT_NUMBER_OF_RETRIES : numberOfRetries; } public CdmHttpClient.Callback getWaitTimeCallback() { diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/RemoteAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/RemoteAdapter.java index 59e58c0f0c..bd0cd43949 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/RemoteAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/RemoteAdapter.java @@ -21,14 +21,13 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; -public class RemoteAdapter extends NetworkAdapter implements StorageAdapter { +public class RemoteAdapter extends NetworkAdapter { static final String TYPE = "remote"; private final Map sources = new LinkedHashMap<>(); private final Map> sourcesById = new LinkedHashMap<>(); private Map hosts; - private String locationHint; public RemoteAdapter() { this(null); @@ -45,6 +44,7 @@ public RemoteAdapter(Map hosts) { this.httpClient = new CdmHttpClient(); } + @Override public boolean canRead() { return true; } @@ -70,8 +70,9 @@ public String fetchConfig() { configObject.set(stringJsonNodeEntry.getKey(), stringJsonNodeEntry.getValue()); } - if (this.locationHint != null) { - configObject.put("locationHint", this.locationHint); + String locationHint = this.getLocationHint(); + if (locationHint != null) { + configObject.put("locationHint", locationHint); } resultConfig.put("config", configObject); @@ -82,24 +83,13 @@ public String fetchConfig() { } } - public boolean canWrite() { - return false; - } - + @Override public void clearCache() { sources.clear(); sourcesById.clear(); } - public CompletableFuture computeLastModifiedTimeAsync(final String corpusPath) { - return CompletableFuture.completedFuture(OffsetDateTime.now()); - } - - public CompletableFuture> fetchAllFilesAsync(final String currFullPath) { - // TODO - return CompletableFuture.completedFuture(null); - } - + @Override public String createAdapterPath(final String corpusPath) throws StorageAdapterException { final Map urlConfig = getUrlConfig(corpusPath); final String protocol = urlConfig.get("protocol"); @@ -109,6 +99,7 @@ public String createAdapterPath(final String corpusPath) throws StorageAdapterEx return protocol + "://" + host + path; } + @Override public String createCorpusPath(final String adapterPath) { if (StringUtils.isNullOrTrimEmpty(adapterPath)) { return null; @@ -145,10 +136,6 @@ public CompletableFuture readAsync(final String corpusPath) { }); } - public CompletableFuture writeAsync(final String corpusPath, final String data) { - throw new UnsupportedOperationException(); - } - private Map getOrRegisterHostInfo(final String adapterPath) { return getOrRegisterHostInfo(adapterPath, null); } @@ -202,7 +189,7 @@ public void updateConfig(final String config) throws IOException { this.updateNetworkConfig(config); final JsonNode configsJson = JMapper.MAP.readTree(config); if (configsJson.has("locationHint")) { - this.locationHint = configsJson.get("locationHint").asText(); + this.setLocationHint(configsJson.get("locationHint").asText()); } if (configsJson.has("hosts") && configsJson.get("hosts").isArray()) { @@ -249,16 +236,6 @@ private Map getUrlConfig(final String corpusPath) throws Storage return result; } - @Override - public String getLocationHint() { - return locationHint; - } - - @Override - public void setLocationHint(final String locationHint) { - this.locationHint = locationHint; - } - public Map getHosts() { return hosts; } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/ResourceAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/ResourceAdapter.java index 18d80089b4..86394ea313 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/ResourceAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/ResourceAdapter.java @@ -17,31 +17,15 @@ /** * Implementation of the resource adapter, enables the access to the files that are marked as resources. */ -public class ResourceAdapter implements StorageAdapter { +public class ResourceAdapter extends StorageAdapterBase { private static final Logger LOGGER = LoggerFactory.getLogger(ResourceAdapter.class); private static final String ROOT = "Microsoft.CommonDataModel.ObjectModel.Resources"; - private String locationHint; - - @Override - public void setLocationHint(String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return locationHint; - } - + @Override public boolean canRead() { return true; } - @Override - public boolean canWrite() { - return false; - } - @Override public CompletableFuture readAsync(String corpusPath) { return CompletableFuture.supplyAsync(() -> { @@ -62,11 +46,6 @@ public CompletableFuture readAsync(String corpusPath) { }); } - @Override - public CompletableFuture writeAsync(String corpusPath, String data) { - return CompletableFuture.completedFuture(null); - } - @Override public String createAdapterPath(String corpusPath) throws StorageAdapterException { if (Strings.isNullOrEmpty(corpusPath)) { @@ -84,31 +63,4 @@ public String createCorpusPath(String adapterPath) { return adapterPath.substring(ROOT.length()); } - - @Override - public void clearCache() { - // Intended to return none. - return; - } - - @Override - public CompletableFuture computeLastModifiedTimeAsync(String corpusPath) - throws StorageAdapterException { - return CompletableFuture.completedFuture(OffsetDateTime.now()); - } - - @Override - public CompletableFuture> fetchAllFilesAsync(String folderCorpusPath) { - return CompletableFuture.completedFuture(null); - } - - @Override - public String fetchConfig() { - throw new UnsupportedOperationException("This adapter does not support the fetchConfig method."); - } - - @Override - public void updateConfig(String config) throws IOException { - throw new UnsupportedOperationException("This adapter does not support the updateConfig method."); - } } diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapter.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapter.java index f0645b9fe1..ea58980178 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapter.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapter.java @@ -11,9 +11,9 @@ /** * The CDM Def interface for an adapter object that can read and write documents from a data source. - * This interface allows a user flexibility to interact with data from multiple sources without - * having to manually copy data to the location where the Object Model is running. This interface - * also allows users to create their own adapter if needed. + * This was the previous method for a user to create their own storage adapter. The current method is + * to extend the StorageAdapterBase class. + * @deprecated Please use the StorageAdapterBase class instead. */ public interface StorageAdapter { /** diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapterBase.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapterBase.java new file mode 100644 index 0000000000..b1f76e607e --- /dev/null +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/storage/StorageAdapterBase.java @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +package com.microsoft.commondatamodel.objectmodel.storage; + +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.HashSet; + +/** + * The CDM base class for an adapter object that can read and write documents from a data source. + * This allows a user flexibility to interact with data from multiple sources without having + * to manually copy data to the location where the Object Model is running. By deriving from this + * this class, users can to create their own adapter if needed. + */ +public abstract class StorageAdapterBase implements StorageAdapter { + + private String locationHint = ""; + + /** + * The location hint, gives a hint to the reader app about the location where the adapter + * implementation (Nuget, NPM...) can be obtained. + */ + public String getLocationHint() { + return locationHint; + } + + /** + * The location hint, gives a hint to the reader app about the location where the adapter + * implementation (Nuget, NPM...) can be obtained. + * + * @return The location hint + */ + public void setLocationHint(final String locationHint) { + this.locationHint = locationHint; + } + + /** + * Returns true if the adapter can read data, false otherwise. + * + * @return True if source is readable, false otherwise. + */ + public boolean canRead() { + return false; + } + + /** + * Returns true if the adapter can write data to its source, false otherwise. + * + * @return True if source is writeable, false otherwise. + */ + public boolean canWrite() { + return false; + } + + /** + * Returns String data that exists at the path. + * + * @param corpusPath CdmCorpusDefinition path + * @return String data read from the given corpus path. + */ + public CompletableFuture readAsync(String corpusPath) { + throw new UnsupportedOperationException("This adapter does not support the readAsync method."); + } + + /** + * Writes the object data to the specified document path. + * + * @param corpusPath CdmCorpusDefinition path + * @param data The data to write + */ + public CompletableFuture writeAsync(String corpusPath, String data) { + throw new UnsupportedOperationException("This adapter does not support the writeAsync method."); + } + + /** + * Converts a corpus path into a path in the domain of this adapter. + * + * @param corpusPath CdmCorpusDefinition path + */ + public String createAdapterPath(String corpusPath) throws StorageAdapterException { + return corpusPath; + } + + /** + * Converts a path in the domain of this adapter into a corpus path. + * + * @param adapterPath Adapter path to convert + * @return the adapter path converted to corpus path + */ + public String createCorpusPath(String adapterPath) { + return adapterPath; + } + + /** + * Returns the last modified time of the specified document. + * + * @param corpusPath The path to the document. + * @return the last modified time of the document + */ + public CompletableFuture computeLastModifiedTimeAsync(String corpusPath) + throws StorageAdapterException { + return CompletableFuture.completedFuture(OffsetDateTime.now()); + } + + /** + * Returns a list of corpus paths to all files and folders at or under the provided corpus path to + * a folder. + * + * @param folderCorpusPath Path to the folder to scan + * @return List of corpus paths of all files and folders found + */ + public CompletableFuture> fetchAllFilesAsync(String folderCorpusPath) { + return CompletableFuture.completedFuture(null); + } + + /** + * Constructs the config. + * + * @return The JsonNode, representing the constructed config for that adapter. + */ + public String fetchConfig() { + return "{}"; + } + + /** + * Applies the JSON config, has to be called after default constructor. + */ + public void updateConfig(String config) throws IOException { + } + + /** + * Empties the cache of files and folders if the storage adapter uses a cache. + */ + public void clearCache() { + } + + /** + * If true, inherited classes should cache and reuse file query results if they support caching + */ + protected boolean getIsCacheEnabled() + { + return !this.activeCacheContexts.isEmpty(); + } + + /** + * Calling this function tells the adapter it may cache and reuse file query results, as opposed to + * reissuing queries to the underlying file storage, which may be a costly operation. This adapter is + * allowed to cache and reuse queries until the object returned by this function has its dispose + * function called. If createFileQueryCacheContext is called multiple times, caching is allowed until + * all objects returned have thier dispose function called. Intended usage is for callers to wrap a + * set of operations that should use caching with a try-finally block and call dispose inside finally. + */ + public CacheContext createFileQueryCacheContext() + { + return new CacheContext(this); + } + + private HashSet activeCacheContexts = new HashSet(); + + /** + * This class is used to track requests to enable file query caching. Each time a request to enable + * caching is made an instance of this class is created and added the the StorageAdapter's activeCacheContexts + * set. When dispose is called, this object is removed from that set. Whenever any items are in the adapter's + * activeCacheContexts, caching is enabled. + */ + public class CacheContext + { + private StorageAdapterBase adapter; + + protected CacheContext(StorageAdapterBase adapter) + { + this.adapter = adapter; + this.adapter.activeCacheContexts.add(this); + } + + public void dispose() + { + this.adapter.activeCacheContexts.remove(this); + if (!this.adapter.getIsCacheEnabled()) + { + this.adapter.clearCache(); + } + } + } +} diff --git a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/utilities/ResolveOptions.java b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/utilities/ResolveOptions.java index fddcb7a32e..77f835f60a 100644 --- a/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/utilities/ResolveOptions.java +++ b/objectModel/Java/objectmodel/src/main/java/com/microsoft/commondatamodel/objectmodel/utilities/ResolveOptions.java @@ -22,6 +22,10 @@ public class ResolveOptions { * as warnings instead. */ private boolean shallowValidation; + /** + * When enabled, all the imports will be loaded and the references checked otherwise will be delayed until the symbols are required. + */ + private Boolean strictValidation = true; /** * the limit for the number of resolved attributes allowed per entity. if the number is exceeded, the resolution will fail */ @@ -119,6 +123,14 @@ public void setShallowValidation(final boolean shallowValidation) { this.shallowValidation = shallowValidation; } + public Boolean getStrictValidation() { + return strictValidation; + } + + public void setStrictValidation(final Boolean strictValidation) { + this.strictValidation = strictValidation; + } + /** * @deprecated This function is extremely likely to be removed in the public interface, and not meant * to be called externally at all. Please refrain from using it. diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/CommonDataModelLoader.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/CommonDataModelLoader.java index 7181f41175..d73f2104f5 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/CommonDataModelLoader.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/CommonDataModelLoader.java @@ -98,7 +98,7 @@ public static CompletableFuture resolveLocalCorpusAsync( List allDocuments = cdmCorpus.getDocumentLibrary().listAllDocuments(); for (int i = 0; i < allDocuments.size(); i++) { final ResolveOptions resOpt = new ResolveOptions(allDocuments.get(i)); - allDocuments.get(i).indexIfNeededAsync(resOpt).join(); + allDocuments.get(i).indexIfNeededAsync(resOpt, true).join(); } return true; diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestStorageAdapter.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestStorageAdapter.java index f96b3aff54..e6f0bb2c69 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestStorageAdapter.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestStorageAdapter.java @@ -3,14 +3,14 @@ package com.microsoft.commondatamodel.objectmodel; -import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapter; +import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapterBase; import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapterException; import java.time.OffsetDateTime; import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; -public class TestStorageAdapter implements StorageAdapter { +public class TestStorageAdapter extends StorageAdapterBase { private Map target; private String locationHint; @@ -18,21 +18,11 @@ public TestStorageAdapter(Map target) { this.target = target; } - @Override - public boolean canRead() { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - @Override public boolean canWrite() { return true; } - @Override - public CompletableFuture readAsync(String corpusPath) { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - @Override public CompletableFuture writeAsync(String corpusPath, String data) { return CompletableFuture.runAsync(() -> { @@ -49,47 +39,7 @@ public String createAdapterPath(String corpusPath) throws StorageAdapterExceptio return corpusPath; } - @Override - public String createCorpusPath(String adapterPath) { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - - @Override - public void clearCache() { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - - @Override - public CompletableFuture computeLastModifiedTimeAsync(String adapterPath) throws StorageAdapterException { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - - @Override - public CompletableFuture> fetchAllFilesAsync(String folderCorpusPath) { - throw new UnsupportedOperationException("NOT IMPLEMENTED"); - } - public Map getTarget() { return target; } - - @Override - public void setLocationHint(String locationHint) { - this.locationHint = locationHint; - } - - @Override - public String getLocationHint() { - return locationHint; - } - - @Override - public String fetchConfig() { - return ""; - } - - @Override - public void updateConfig(String config) { - // Intentionally blank. - } } diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestUtils.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestUtils.java index 7c4d99fbbb..7ece8ccd26 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestUtils.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/TestUtils.java @@ -8,6 +8,7 @@ import com.microsoft.commondatamodel.objectmodel.cdm.CdmFolderDefinition; import com.microsoft.commondatamodel.objectmodel.utilities.AttributeResolutionDirectiveSet; import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; +import com.microsoft.commondatamodel.objectmodel.utilities.StringUtils; import java.util.HashSet; import java.util.List; @@ -15,13 +16,35 @@ public class TestUtils { /** - * A function to resolve an entity + * Resolves an entity */ public static CompletableFuture getResolvedEntity(CdmCorpusDefinition corpus, CdmEntityDefinition inputEntity, List resolutionOptions) { + return getResolvedEntity(corpus, inputEntity, resolutionOptions, false); + } + + /** + * Resolves an entity + * @param corpus The corpus + * @param inputEntity The entity to resolve + * @param resolutionOptions The resolution options + * @param addResOptToName Whether to add the resolution options as part of the resolved entity name + */ + public static CompletableFuture getResolvedEntity( + CdmCorpusDefinition corpus, + CdmEntityDefinition inputEntity, + List resolutionOptions, + boolean addResOptToName + ) { return CompletableFuture.supplyAsync(() -> { HashSet roHashSet = new HashSet<>(resolutionOptions); - String resolvedEntityName = "Resolved_" + inputEntity.getEntityName(); + String resolvedEntityName = ""; + if (addResOptToName) { + String fileNameSuffix = getResolutionOptionNameSuffix(resolutionOptions); + resolvedEntityName = "Resolved_" + inputEntity.getEntityName() + fileNameSuffix; + } else { + resolvedEntityName = "Resolved_" + inputEntity.getEntityName(); + } ResolveOptions ro = new ResolveOptions(inputEntity.getInDocument()); ro.setDirectives(new AttributeResolutionDirectiveSet(roHashSet)); @@ -32,4 +55,22 @@ public static CompletableFuture getResolvedEntity(CdmCorpus return resolvedEntity; }); } + + /** + * Returns a suffix that contains the file name and resolution option used + * @param resolutionOptions The resolution options + */ + public static String getResolutionOptionNameSuffix(List resolutionOptions) { + String fileNamePrefix = ""; + + for (int i = 0; i < resolutionOptions.size(); i++) { + fileNamePrefix = fileNamePrefix + "_" + resolutionOptions.get(i); + } + + if (StringUtils.isNullOrTrimEmpty(fileNamePrefix)) { + fileNamePrefix = "_default"; + } + + return fileNamePrefix; + } } diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/CorpusTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/CorpusTest.java index 26b8815da8..8e02ab67d1 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/CorpusTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/CorpusTest.java @@ -5,14 +5,13 @@ import java.io.File; import java.util.concurrent.ExecutionException; +import java.util.concurrent.atomic.AtomicInteger; import com.microsoft.commondatamodel.objectmodel.TestHelper; import com.microsoft.commondatamodel.objectmodel.enums.CdmStatusLevel; import com.microsoft.commondatamodel.objectmodel.utilities.AttributeResolutionDirectiveSet; -import com.microsoft.commondatamodel.objectmodel.utilities.InterceptLog; import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; -import org.apache.logging.log4j.Level; import org.testng.Assert; import org.testng.annotations.Test; @@ -39,13 +38,71 @@ public void testResolveSymbolReference() throws InterruptedException, ExecutionE /** * Tests if ComputeLastModifiedTimeAsync doesn't log errors related to reference validation. */ + @Test public void testComputeLastModifiedTimeAsync() throws InterruptedException { final CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "TestComputeLastModifiedTimeAsync", null); corpus.setEventCallback((CdmStatusLevel level, String message) -> { Assert.fail(message); - }, CdmStatusLevel.Warning); + }, CdmStatusLevel.Error); corpus.computeLastModifiedTimeAsync("local:/default.manifest.cdm.json").join(); } + + /** + * Tests the FetchObjectAsync function with the StrictValidation off. + */ + @Test + public void testStrictValidationOff() throws InterruptedException { + final CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "TestStrictValidation", null); + corpus.setEventCallback((CdmStatusLevel level, String message) -> { + // when the strict validation is disabled, there should be no reference validation. + // no error should be logged. + Assert.fail(message); + }, CdmStatusLevel.Warning); + + // load with strict validation disabled. + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(false); + corpus.fetchObjectAsync("local:/doc.cdm.json", null, resOpt).join(); + } + + /** + * Tests the FetchObjectAsync function with the StrictValidation on. + */ + @Test + public void testStrictValidationOn() throws InterruptedException { + final AtomicInteger errorCount = new AtomicInteger(0); + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "TestStrictValidation", null); + corpus.setEventCallback((CdmStatusLevel level, String message) -> { + if (message.contains("Unable to resolve the reference")) { + errorCount.getAndIncrement(); + } else { + Assert.fail(message); + } + }, CdmStatusLevel.Error); + + // load with strict validation. + ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); + corpus.fetchObjectAsync("local:/doc.cdm.json", null, resOpt).join(); + Assert.assertEquals(1, errorCount.get()); + + errorCount.set(0); + corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testStrictValidation", null); + corpus.setEventCallback((CdmStatusLevel level, String message) -> { + if (level == CdmStatusLevel.Warning && message.contains("Unable to resolve the reference")) { + errorCount.getAndIncrement(); + } else { + Assert.fail(message); + } + }, CdmStatusLevel.Warning); + + // load with strict validation and shallow validation. + resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); + resOpt.setShallowValidation(true); + corpus.fetchObjectAsync("local:/doc.cdm.json", null, resOpt).join(); + Assert.assertEquals(1, errorCount.get()); + } } \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentDefinitionTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentDefinitionTest.java index bd20229664..0b553e14c4 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentDefinitionTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/DocumentDefinitionTest.java @@ -35,8 +35,8 @@ public void TestCircularImportWithMoniker() throws InterruptedException { docC.getImports().add("B.cdm.json"); // forces docB to be indexed first. - docB.indexIfNeededAsync(new ResolveOptions()).join(); - docA.indexIfNeededAsync(new ResolveOptions()).join(); + docB.indexIfNeededAsync(new ResolveOptions(), true).join(); + docA.indexIfNeededAsync(new ResolveOptions(), true).join(); // should contain A, B and C. Assert.assertEquals(3, docA.getImportPriorities().getImportPriority().size()); @@ -74,7 +74,7 @@ public void TestDeeperCircularImportWithMoniker() throws InterruptedException { docD.getImports().add("C.cdm.json"); // indexIfNeededAsync will internally call prioritizeImports on every document. - docA.indexIfNeededAsync(new ResolveOptions()).join(); + docA.indexIfNeededAsync(new ResolveOptions(), true).join(); Assert.assertEquals(4, docA.getImportPriorities().getImportPriority().size()); @@ -82,14 +82,14 @@ public void TestDeeperCircularImportWithMoniker() throws InterruptedException { markDocumentsToIndex(folder.getDocuments()); // force docC to be indexed first, so the priorityList will be read from the cache this time. - docC.indexIfNeededAsync(new ResolveOptions()).join(); - docA.indexIfNeededAsync(new ResolveOptions()).join(); + docC.indexIfNeededAsync(new ResolveOptions(), true).join(); + docA.indexIfNeededAsync(new ResolveOptions(), true).join(); Assert.assertEquals(4, docA.getImportPriorities().getImportPriority().size()); // indexes the rest of the documents. - docB.indexIfNeededAsync(new ResolveOptions()).join(); - docD.indexIfNeededAsync(new ResolveOptions()).join(); + docB.indexIfNeededAsync(new ResolveOptions(), true).join(); + docD.indexIfNeededAsync(new ResolveOptions(), true).join(); Assert.assertFalse(docA.getImportPriorities().getHasCircularImport()); Assert.assertFalse(docB.getImportPriorities().getHasCircularImport()); @@ -118,8 +118,8 @@ public void TestMonikeredImportIsNotAdded() throws InterruptedException { folder.getDocuments().add(docC); // forces docB to be indexed first, so the priorityList will be read from the cache this time. - docB.indexIfNeededAsync(new ResolveOptions(docB)).join(); - docA.indexIfNeededAsync(new ResolveOptions(docA)).join(); + docB.indexIfNeededAsync(new ResolveOptions(docB), true).join(); + docA.indexIfNeededAsync(new ResolveOptions(docA), true).join(); // should only contain docA and docC, docB should be excluded. Assert.assertEquals(2, docA.getImportPriorities().getImportPriority().size()); diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/ImportsTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/ImportsTest.java index a26a579e61..79a9cfc589 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/ImportsTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/ImportsTest.java @@ -9,6 +9,8 @@ import com.microsoft.commondatamodel.objectmodel.storage.LocalAdapter; import com.microsoft.commondatamodel.objectmodel.storage.StorageAdapter; import java.io.File; + +import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; import org.testng.Assert; import org.testng.annotations.Test; @@ -24,10 +26,14 @@ public void testEntityWithMissingImport() throws InterruptedException { this.createStorageAdapterForTest("testEntityWithMissingImport"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); final CdmDocumentDefinition doc = cdmCorpus.fetchObjectAsync( - "local:/missingImport.cdm.json" + "local:/missingImport.cdm.json", + null, + resOpt ).join(); assertNotNull(doc); Assert.assertEquals(doc.getImports().getCount(), 1); @@ -43,10 +49,14 @@ public void testEntityWithMissingNestedImports() throws InterruptedException { this.createStorageAdapterForTest("testEntityWithMissingNestedImports"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); final CdmDocumentDefinition doc = cdmCorpus.fetchObjectAsync( - "local:/missingNestedImport.cdm.json" + "local:/missingNestedImport.cdm.json", + null, + resOpt ).join(); assertNotNull(doc); @@ -63,8 +73,10 @@ public void testEntityWithSameImports() throws InterruptedException { final StorageAdapter localAdapter = this.createStorageAdapterForTest("testEntityWithSameImports"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); - final CdmDocumentDefinition doc = cdmCorpus.fetchObjectAsync("local:/multipleImports.cdm.json").join(); + final CdmDocumentDefinition doc = cdmCorpus.fetchObjectAsync("local:/multipleImports.cdm.json", null, resOpt).join(); assertNotNull(doc); Assert.assertEquals(doc.getImports().getCount(), 2); @@ -103,8 +115,10 @@ public void testNonExistingAdapterNamespace() throws InterruptedException { public void testLoadingSameImports() throws InterruptedException { final StorageAdapter localAdapter = this.createStorageAdapterForTest("testLoadingSameImportsAsync"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); - CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json").join(); + CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json", null, resOpt).join(); Assert.assertNotNull(mainDoc); Assert.assertEquals(mainDoc.getImports().getCount(), 2); @@ -127,8 +141,10 @@ public void testLoadingSameImports() throws InterruptedException { public void testLoadingSameMissingImports() throws InterruptedException { final StorageAdapter localAdapter = this.createStorageAdapterForTest("testLoadingSameMissingImportsAsync"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); - CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json").join(); + CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json", null, resOpt).join(); Assert.assertNotNull(mainDoc); Assert.assertEquals(mainDoc.getImports().getCount(), 2); @@ -150,9 +166,11 @@ public void testLoadingSameMissingImports() throws InterruptedException { public void testLoadingAlreadyPresentImports() throws InterruptedException { final StorageAdapter localAdapter = this.createStorageAdapterForTest("testLoadingAlreadyPresentImportsAsync"); final CdmCorpusDefinition cdmCorpus = this.createTestCorpus(localAdapter); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); // Load the first doc. - CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json").join(); + CdmDocumentDefinition mainDoc = cdmCorpus.fetchObjectAsync("mainEntity.cdm.json", null, resOpt).join(); Assert.assertNotNull(mainDoc); Assert.assertEquals(mainDoc.getImports().getCount(), 1); diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionExcludeTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionExcludeTest.java new file mode 100644 index 0000000000..3ce564c89e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionExcludeTest.java @@ -0,0 +1,844 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +package com.microsoft.commondatamodel.objectmodel.cdm.projection; + +import com.microsoft.commondatamodel.objectmodel.TestHelper; +import com.microsoft.commondatamodel.objectmodel.TestUtils; +import com.microsoft.commondatamodel.objectmodel.cdm.*; +import com.microsoft.commondatamodel.objectmodel.cdm.projections.CdmOperationExcludeAttributes; +import com.microsoft.commondatamodel.objectmodel.cdm.projections.CdmProjection; +import com.microsoft.commondatamodel.objectmodel.enums.CdmObjectType; +import com.microsoft.commondatamodel.objectmodel.storage.LocalAdapter; +import com.microsoft.commondatamodel.objectmodel.utilities.AttributeResolutionDirectiveSet; +import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +/** + * A test class for testing the ExcludeAttributes operation in a projection as well as SelectsSomeAvoidNames in a resolution guidance + */ +public class ProjectionExcludeTest { + /** + * All possible combinations of the different resolution directives + */ + private static List> resOptsCombinations = new ArrayList<>( + Arrays.asList( + new ArrayList<>(Arrays.asList()), + new ArrayList<>(Arrays.asList("referenceOnly")), + new ArrayList<>(Arrays.asList("normalized")), + new ArrayList<>(Arrays.asList("structured")), + new ArrayList<>(Arrays.asList("referenceOnly", "normalized")), + new ArrayList<>(Arrays.asList("referenceOnly", "structured")), + new ArrayList<>(Arrays.asList("normalized", "structured")), + new ArrayList<>(Arrays.asList("referenceOnly", "normalized", "structured")) + ) + ); + + /** + * Path to foundations + */ + private static final String foundationJsonPath = "cdm:/foundations.cdm.json"; + + /** + * The path between TestDataPath and TestName. + */ + private static final String TESTS_SUBPATH = + new File(new File(new File( + "cdm"), + "projection"), + "testProjectionExclude") + .toString(); + + /** + * Test for creating a projection with an ExcludeAttributes operation on an entity attribute using the object model + */ + @Test + public void testEntityAttributeProjUsingObjectModel() throws InterruptedException { + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testEntityAttributeProjUsingObjectModel", null); + corpus.getStorage().mount("local", new LocalAdapter(TestHelper.getActualOutputFolderPath(TESTS_SUBPATH, "testEntityAttributeProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.getStorage().fetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = createEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.makeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.getExcludeAttributes().add("id"); + excludeAttrsOp.getExcludeAttributes().add("date"); + projection.getOperations().add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.setExplicitReference(projection); + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.makeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.setEntity(projectionEntityRef); + entity.getAttributes().add(entityAttribute); + + // Resolve the entity + CdmEntityDefinition resolvedEntity = entity.createResolvedEntityAsync("Resolved_" + entity.getEntityName() + ".cdm.json", null, localRoot).join(); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "value"); + } + + /** + * Test for creating a projection with an ExcludeAttributes operation on an entity definition using the object model + */ + @Test + public void testEntityProjUsingObjectModel() throws InterruptedException { + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testEntityProjUsingObjectModel", null); + corpus.getStorage().mount("local", new LocalAdapter(TestHelper.getActualOutputFolderPath(TESTS_SUBPATH, "testEntityProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.getStorage().fetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = createEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.makeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.getExcludeAttributes().add("name"); + excludeAttrsOp.getExcludeAttributes().add("value"); + projection.getOperations().add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.setExplicitReference(projection); + + // Set the entity's ExtendEntity to be the projection + entity.setExtendsEntity(projectionEntityRef); + + // Resolve the entity + CdmEntityDefinition resolvedEntity = entity.createResolvedEntityAsync("Resolved_" + entity.getEntityName() + ".cdm.json", null, localRoot).join(); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["name", "value"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "id"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "date"); + } + + /** + * Test for creating nested projections with ExcludeAttributes operations using the object model + */ + @Test + public void testNestedProjUsingObjectModel() throws InterruptedException { + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testNestedProjUsingObjectModel", null); + corpus.getStorage().mount("local", new LocalAdapter(TestHelper.getActualOutputFolderPath(TESTS_SUBPATH, "testNestedProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.getStorage().fetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = createEntity(corpus, localRoot); + + // Create a projection + CdmProjection projection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.makeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.getExcludeAttributes().add("id"); + excludeAttrsOp.getExcludeAttributes().add("date"); + projection.getOperations().add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.setExplicitReference(projection); + + // Create another projection that uses the previous projection as its source + CdmProjection projection2 = corpus.makeObject(CdmObjectType.ProjectionDef); + projection2.setSource(projectionEntityRef); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp2 = corpus.makeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp2.getExcludeAttributes().add("value"); + projection2.getOperations().add(excludeAttrsOp2); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef2 = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionEntityRef2.setExplicitReference(projection2); + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.makeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.setEntity(projectionEntityRef2); + entity.getAttributes().add(entityAttribute); + + // Resolve the entity + CdmEntityDefinition resolvedEntity = entity.createResolvedEntityAsync("Resolved_" + entity.getEntityName() + ".cdm.json", null, localRoot).join(); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operations + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"], ["value"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 1); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + } + + /** + * Test for creating a projection with an ExcludeAttributes operation and a condition using the object model + */ + @Test + public void testConditionalProjUsingObjectModel() throws InterruptedException { + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testConditionalProjUsingObjectModel", null); + corpus.getStorage().mount("local", new LocalAdapter(TestHelper.getActualOutputFolderPath(TESTS_SUBPATH, "testConditionalProjUsingObjectModel"))); + CdmFolderDefinition localRoot = corpus.getStorage().fetchRootFolder("local"); + + // Create an entity + CdmEntityDefinition entity = createEntity(corpus, localRoot); + + // Create a projection with a condition that states the operation should only execute when the resolution directive is 'referenceOnly' + CdmProjection projection = createProjection(corpus, localRoot); + projection.setCondition("referenceOnly==true"); + + // Create an ExcludeAttributes operation + CdmOperationExcludeAttributes excludeAttrsOp = corpus.makeObject(CdmObjectType.OperationExcludeAttributesDef); + excludeAttrsOp.getExcludeAttributes().add("id"); + excludeAttrsOp.getExcludeAttributes().add("date"); + projection.getOperations().add(excludeAttrsOp); + + // Create an entity reference to hold this projection + CdmEntityReference projectionEntityRef = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionEntityRef.setExplicitReference(projection); + + // Create an entity attribute that contains this projection and add this to the entity + CdmEntityAttributeDefinition entityAttribute = corpus.makeObject(CdmObjectType.EntityAttributeDef, "TestEntityAttribute"); + entityAttribute.setEntity(projectionEntityRef); + entity.getAttributes().add(entityAttribute); + + // Create resolution options with the 'referenceOnly' directive + ResolveOptions resOpt = new ResolveOptions(entity.getInDocument()); + resOpt.setDirectives(new AttributeResolutionDirectiveSet(new HashSet(Arrays.asList("referenceOnly")))); + + // Resolve the entity with 'referenceOnly' + CdmEntityDefinition resolvedEntityWithReferenceOnly = entity.createResolvedEntityAsync("Resolved_" + entity.getEntityName() + ".cdm.json", resOpt, localRoot).join(); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: ["id", "date"] + Assert.assertEquals(resolvedEntityWithReferenceOnly.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithReferenceOnly.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithReferenceOnly.getAttributes().get(1)).getName(), "value"); + + // Now resolve the entity with the 'structured' directive + resOpt.setDirectives(new AttributeResolutionDirectiveSet(new HashSet(Arrays.asList("structured")))); + CdmEntityDefinition resolvedEntityWithStructured = entity.createResolvedEntityAsync("Resolved_" + entity.getEntityName() + ".cdm.json", resOpt, localRoot).join(); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ["id", "name", "value", "date"] + // Excluded attributes: none, condition was false + Assert.assertEquals(resolvedEntityWithStructured.getAttributes().size(), 4); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithStructured.getAttributes().get(0)).getName(), "id"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithStructured.getAttributes().get(1)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithStructured.getAttributes().get(2)).getName(), "value"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntityWithStructured.getAttributes().get(3)).getName(), "date"); + } + + /** + * ExcludeAttributes on an entity attribute + */ + @Test + public void testExcludeAttributes() throws InterruptedException { + String testName = "testExcludeAttributes"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + } + + /** + * SelectsSomeAvoidNames on an entity attribute + */ + @Test + public void testSSAN() throws InterruptedException { + String testName = "testSSAN"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["PersonInfoName", "PersonInfoAge", "PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + // Excluded attributes: ["PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "PersonInfoName"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "PersonInfoAge"); + } + + /** + * SelectsSomeAvoidNames on an entity attribute that has renameFormat = "{m}" + */ + @Test + public void testSSANRename() throws InterruptedException { + String testName = "testSSANRename"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + } + + /** + * A nested ExcludeAttributes operation in a single projection + */ + @Test + public void testSingleNestedProj() throws InterruptedException { + String testName = "testSingleNestedProj"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + } + + /** + * Nested projections with ExcludeAttributes + */ + @Test + public void testNestedProj() throws InterruptedException { + String testName = "testNestedProj"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"], ["age"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 1); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + } + + /** + * Multiple ExcludeAttributes in a single projection + */ + @Test + public void testMultipleExclude() throws InterruptedException { + String testName = "testMultipleExclude"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["name", "age", "address"], ["address", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 4); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "phoneNumber"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "email"); + } + + /** + * ExcludeAttributes on an entity definition + */ + @Test + public void testExtendsEntityProj() throws InterruptedException { + String testName = "testExtendsEntityProj"; + String entityName = "Child"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 3); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "address"); + } + + /** + * SelectsSomeAvoidNames on an entity definition + */ + @Test + public void testExtendsEntity() throws InterruptedException { + String testName = "testExtendsEntity"; + String entityName = "Child"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 3); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "address"); + } + + /** + * ExcludeAttributes on a polymorphic source + */ + @Test + public void testPolymorphicProj() throws InterruptedException { + String testName = "testPolymorphicProj"; + String entityName = "BusinessPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["emailId", "address", "isPrimary", "phoneId", "number", "socialId", "account"] + // Excluded attributes: ["socialId", "account"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 5); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "emailId"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "address"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "isPrimary"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "phoneId"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "number"); + } + + /** + * SelectsSomeAvoidNames on a polymorphic source + */ + @Test + public void testPolymorphic() throws InterruptedException { + String testName = "testPolymorphic"; + String entityName = "BusinessPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["emailId", "address", "isPrimary", "phoneId", "number", "socialId", "account"] + // Excluded attributes: ["socialId", "account"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 5); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "emailId"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "address"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "isPrimary"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "phoneId"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "number"); + } + + /** + * ExcludeAttributes on an array source + */ + @Test + public void testArraySourceProj() throws InterruptedException { + String testName = "testArraySourceProj"; + String entityName = "FriendGroup"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["personCount", "name1", "age1", "address1", "phoneNumber1", "email1", ..., "email3"] (16 total) + // Excluded attributes: ["age1", "age2", "age3"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 13); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "personCount"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "name1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "address1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "phoneNumber1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "email1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(5)).getName(), "name2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(6)).getName(), "address2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(7)).getName(), "phoneNumber2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(8)).getName(), "email2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(9)).getName(), "name3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(10)).getName(), "address3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(11)).getName(), "phoneNumber3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(12)).getName(), "email3"); + } + + /** + * SelectsSomeAvoidNames on an array source + */ + @Test + public void testArraySource() throws InterruptedException { + String testName = "testArraySource"; + String entityName = "FriendGroup"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["GroupOfPeoplePersonCount", "GroupOfPeopleName1", "GroupOfPeopleAge1", "GroupOfPeopleAddress1", + // "GroupOfPeoplePhoneNumber1", "GroupOfPeopleEmail1", ..., "GroupOfPeopleEmail3"] (16 total) + // Excluded attributes: ["GroupOfPeopleAge1", "GroupOfPeopleAge2", "GroupOfPeopleAge3"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 13); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "GroupOfPeoplePersonCount"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "GroupOfPeopleName1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "GroupOfPeopleAddress1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "GroupOfPeoplePhoneNumber1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "GroupOfPeopleEmail1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(5)).getName(), "GroupOfPeopleName2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(6)).getName(), "GroupOfPeopleAddress2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(7)).getName(), "GroupOfPeoplePhoneNumber2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(8)).getName(), "GroupOfPeopleEmail2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(9)).getName(), "GroupOfPeopleName3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(10)).getName(), "GroupOfPeopleAddress3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(11)).getName(), "GroupOfPeoplePhoneNumber3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(12)).getName(), "GroupOfPeopleEmail3"); + } + + /** + * SelectsSomeAvoidNames on an array source that has renameFormat = "{m}" + */ + @Test + public void testArraySourceRename() throws InterruptedException { + String testName = "testArraySourceRename"; + String entityName = "FriendGroup"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["personCount", "name1", "age1", "address1", "phoneNumber1", "email1", ..., "email3"] (16 total) + // Excluded attributes: ["age1", "age2", "age3"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 13); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "personCount"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "name1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "address1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "phoneNumber1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "email1"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(5)).getName(), "name2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(6)).getName(), "address2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(7)).getName(), "phoneNumber2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(8)).getName(), "email2"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(9)).getName(), "name3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(10)).getName(), "address3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(11)).getName(), "phoneNumber3"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(12)).getName(), "email3"); + } + + /** + * ExcludeAttributes with a condition + */ + @Test + public void testConditionalProj() throws InterruptedException { + String testName = "testConditionalProj"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList(Arrays.asList("referenceOnly"))).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + + CdmEntityDefinition resolvedEntity2 = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: none, condition was false + Assert.assertEquals(resolvedEntity2.getAttributes().size(), 5); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity2.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity2.getAttributes().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity2.getAttributes().get(2)).getName(), "address"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity2.getAttributes().get(3)).getName(), "phoneNumber"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity2.getAttributes().get(4)).getName(), "email"); + } + + /** + * ExcludeAttributes with an empty exclude attributes list + */ + @Test + public void testEmptyExclude() throws InterruptedException { + String testName = "testEmptyExclude"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: [] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 5); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(2)).getName(), "address"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(3)).getName(), "phoneNumber"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(4)).getName(), "email"); + } + + /** + * ExcludeAttributes on an entity with an attribute group + */ + @Test + public void testGroupProj() throws InterruptedException { + String testName = "testGroupProj"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + } + + /** + * SelectsSomeAvoidNames on an entity with an attribute group + */ + @Test + public void testGroup() throws InterruptedException { + String testName = "testGroup"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["PersonInfoName", "PersonInfoAge", "PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + // Excluded attributes: ["PersonInfoAddress", "PersonInfoPhoneNumber", "PersonInfoEmail"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "PersonInfoName"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "PersonInfoAge"); + } + + /** + * SelectsSomeAvoidNames on an entity with an attribute group that has renameFormat = "{m}" + */ + @Test + public void testGroupRename() throws InterruptedException { + String testName = "testGroupRename"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList<>(Arrays.asList())).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email"] + // Excluded attributes: ["address", "phoneNumber", "email"] + Assert.assertEquals(resolvedEntity.getAttributes().size(), 2); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(1)).getName(), "age"); + } + + /** + * ExcludeAttributes with an entity attribute name on an inline entity reference that contains entity attributes + * This is testing that, for the case of the structured directive, we can filter using the name of an entity attribute + * in the inline entity reference to exclude the entire entity attribute group + */ + @Test + public void testEANameProj() throws InterruptedException { + String testName = "testEANameProj"; + String entityName = "NewPerson"; + CdmCorpusDefinition corpus = getCorpus(testName); + + for (List resOpt : resOptsCombinations) { + loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt).join(); + } + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, new ArrayList(Arrays.asList("structured"))).join(); + + // Original set of attributes: ["name", "age", "address", "phoneNumber", "email", "title", "company", "tenure"] + // Excluded attributes: ["OccupationInfo"] (name of entity attribute that contains "title", "company", "tenure") + Assert.assertEquals(resolvedEntity.getAttributes().size(), 1); // attribute group created because of structured directive + CdmAttributeGroupDefinition attGroup = (CdmAttributeGroupDefinition) ((CdmAttributeGroupReference) resolvedEntity.getAttributes().get(0)).getExplicitReference(); + Assert.assertEquals(attGroup.getMembers().size(), 5); + Assert.assertEquals(((CdmTypeAttributeDefinition) attGroup.getMembers().get(0)).getName(), "name"); + Assert.assertEquals(((CdmTypeAttributeDefinition) attGroup.getMembers().get(1)).getName(), "age"); + Assert.assertEquals(((CdmTypeAttributeDefinition) attGroup.getMembers().get(2)).getName(), "address"); + Assert.assertEquals(((CdmTypeAttributeDefinition) attGroup.getMembers().get(3)).getName(), "phoneNumber"); + Assert.assertEquals(((CdmTypeAttributeDefinition) attGroup.getMembers().get(4)).getName(), "email"); + } + + /** + * Creates a corpus + */ + private CdmCorpusDefinition getCorpus(String testName) throws InterruptedException { + CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, testName, null); + return corpus; + } + + /** + * Creates an entity + */ + private CdmEntityDefinition createEntity(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) { + String entityName = "TestEntity"; + CdmEntityDefinition entity = corpus.makeObject(CdmObjectType.EntityDef, entityName); + + CdmDocumentDefinition entityDoc = corpus.makeObject(CdmObjectType.DocumentDef, entityName + ".cdm.json", false); + entityDoc.getImports().add(foundationJsonPath); + entityDoc.getDefinitions().add(entity); + localRoot.getDocuments().add(entityDoc, entityDoc.getName()); + + return entity; + } + + /** + * Creates a source entity for a projection + */ + private CdmEntityDefinition createSourceEntity(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) { + String entityName = "SourceEntity"; + CdmEntityDefinition entity = corpus.makeObject(CdmObjectType.EntityDef, entityName); + + String attributeName1 = "id"; + CdmTypeAttributeDefinition attribute1 = corpus.makeObject(CdmObjectType.TypeAttributeDef, attributeName1); + attribute1.setDataType(corpus.makeRef(CdmObjectType.DataTypeRef, "String", true)); + entity.getAttributes().add(attribute1); + + String attributeName2 = "name"; + CdmTypeAttributeDefinition attribute2 = corpus.makeObject(CdmObjectType.TypeAttributeDef, attributeName2); + attribute2.setDataType(corpus.makeRef(CdmObjectType.DataTypeRef, "String", true)); + entity.getAttributes().add(attribute2); + + String attributeName3 = "value"; + CdmTypeAttributeDefinition attribute3 = corpus.makeObject(CdmObjectType.TypeAttributeDef, attributeName3); + attribute3.setDataType(corpus.makeRef(CdmObjectType.DataTypeRef, "integer", true)); + entity.getAttributes().add(attribute3); + + String attributeName4 = "date"; + CdmTypeAttributeDefinition attribute4 = corpus.makeObject(CdmObjectType.TypeAttributeDef, attributeName4); + attribute4.setDataType(corpus.makeRef(CdmObjectType.DataTypeRef, "date", true)); + entity.getAttributes().add(attribute4); + + CdmDocumentDefinition entityDoc = corpus.makeObject(CdmObjectType.DocumentDef, entityName + ".cdm.json", false); + entityDoc.getImports().add(foundationJsonPath); + entityDoc.getDefinitions().add(entity); + localRoot.getDocuments().add(entityDoc, entityDoc.getName()); + + return entity; + } + + /** + * Creates a projection + */ + private CdmProjection createProjection(CdmCorpusDefinition corpus, CdmFolderDefinition localRoot) { + // Create an entity reference to use as the source of the projection + CdmEntityReference projectionSource = corpus.makeObject(CdmObjectType.EntityRef, null); + projectionSource.setExplicitReference(createSourceEntity(corpus, localRoot)); + + // Create the projection + CdmProjection projection = corpus.makeObject(CdmObjectType.ProjectionDef); + projection.setSource(projectionSource); + + return projection; + } + + /** + * Loads an entity, resolves it, and then validates the generated attribute contexts + */ + private CompletableFuture loadEntityForResolutionOptionAndSave(CdmCorpusDefinition corpus, String testName, String entityName, List resOpts) { + return CompletableFuture.runAsync(() -> { + String expectedOutputPath = null; + try { + expectedOutputPath = TestHelper.getExpectedOutputFolderPath(TESTS_SUBPATH, testName); + } catch (InterruptedException e) { + e.printStackTrace(); + } + String fileNameSuffix = TestUtils.getResolutionOptionNameSuffix(resOpts); + + CdmEntityDefinition entity = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName).join(); + CdmEntityDefinition resolvedEntity = TestUtils.getResolvedEntity(corpus, entity, resOpts, true).join(); + AttributeContextUtil.validateAttributeContext(corpus, expectedOutputPath, entityName + fileNameSuffix, resolvedEntity); + }); + } +} diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionFKTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionFKTest.java index 4f1bf0f460..c19696879d 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionFKTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/projection/ProjectionFKTest.java @@ -4,6 +4,7 @@ package com.microsoft.commondatamodel.objectmodel.cdm.projection; import com.microsoft.commondatamodel.objectmodel.TestHelper; +import com.microsoft.commondatamodel.objectmodel.TestUtils; import com.microsoft.commondatamodel.objectmodel.cdm.CdmCorpusDefinition; import com.microsoft.commondatamodel.objectmodel.cdm.CdmEntityDefinition; import com.microsoft.commondatamodel.objectmodel.cdm.CdmFolderDefinition; @@ -222,7 +223,7 @@ private CompletableFuture loadEntityForResolutionOptionAndSave(String test } catch (InterruptedException e) { e.printStackTrace(); } - String fileNameSuffix = getResolutionOptionNameSuffix(resOpts); + String fileNameSuffix = TestUtils.getResolutionOptionNameSuffix(resOpts); CdmEntityDefinition entSalesForeignKeyProjection = (CdmEntityDefinition) corpus.fetchObjectAsync("local:/" + entityName + ".cdm.json/" + entityName, manifest).join(); Assert.assertNotNull(entSalesForeignKeyProjection); @@ -232,20 +233,6 @@ private CompletableFuture loadEntityForResolutionOptionAndSave(String test }); } - private String getResolutionOptionNameSuffix(List resolutionOptions) { - String fileNamePrefix = ""; - - for (int i = 0; i < resolutionOptions.size(); i++) { - fileNamePrefix = fileNamePrefix + "_" + resolutionOptions.get(i); - } - - if (StringUtils.isNullOrTrimEmpty(fileNamePrefix)) { - fileNamePrefix = "_default"; - } - - return fileNamePrefix; - } - private CompletableFuture saveResolved(CdmCorpusDefinition corpus, CdmManifestDefinition manifest, String testName, CdmEntityDefinition inputEntity, List resolutionOptions) { return CompletableFuture.supplyAsync(() -> { HashSet roHashSet = new HashSet(); @@ -253,7 +240,7 @@ private CompletableFuture saveResolved(CdmCorpusDefinition roHashSet.add(resolutionOptions.get(i)); } - String fileNameSuffix = getResolutionOptionNameSuffix(resolutionOptions); + String fileNameSuffix = TestUtils.getResolutionOptionNameSuffix(resolutionOptions); String resolvedEntityName = "Resolved_" + inputEntity.getEntityName() + fileNameSuffix + ".cdm.json"; diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/CalculateRelationshipTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/CalculateRelationshipTest.java index ee397acfc8..c145bca93c 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/CalculateRelationshipTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/CalculateRelationshipTest.java @@ -175,7 +175,7 @@ private void testRun(String testName, String entityName) throws InterruptedExcep private static String getRelationshipStrings(CdmCollection relationships) { StringBuilder bldr = new StringBuilder(); for (CdmE2ERelationship rel : relationships) { - bldr.append(MessageFormat.format("{0}|{1}|{2}|{3}|{4}", rel.getName(), rel.getToEntity(), rel.getToEntityAttribute(), rel.getFromEntity(), rel.getFromEntityAttribute())); + bldr.append(MessageFormat.format("{0}|{1}|{2}|{3}|{4}", !StringUtils.isNullOrTrimEmpty(rel.getName()) ? rel.getName() : "", rel.getToEntity(), rel.getToEntityAttribute(), rel.getFromEntity(), rel.getFromEntityAttribute())); bldr.append(endOfLine); } return bldr.toString(); diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/RelationshipTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/RelationshipTest.java index 5ffdbca5c3..ae02068f34 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/RelationshipTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/cdm/relationship/RelationshipTest.java @@ -17,6 +17,8 @@ import com.microsoft.commondatamodel.objectmodel.persistence.cdmfolder.types.E2ERelationship; import com.microsoft.commondatamodel.objectmodel.storage.LocalAdapter; import com.microsoft.commondatamodel.objectmodel.utilities.JMapper; +import com.microsoft.commondatamodel.objectmodel.utilities.StringUtils; + import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -313,7 +315,9 @@ private static void verifyRelationships(CdmManifestDefinition manifest, List seekEntities(final CdmCorpusDefinition cd ent = cdmCorpus.fetchObjectAsync(ent.getEntityPath(), currentFile).join(); currentFile = ent; } - final CdmEntityDefinition newEnt = cdmCorpus - .fetchObjectAsync(ent.getEntityPath(), currentFile).join(); final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); + final CdmEntityDefinition newEnt = cdmCorpus + .fetchObjectAsync(ent.getEntityPath(), currentFile, resOpt).join(); resOpt.setWrtDoc(newEnt.getInDocument()); resOpt.setDirectives(directives); @@ -158,7 +159,7 @@ public void testResolvedKnowledgeGraph() { /** * Test if the mini dyn resolved entities match. */ - @Test + // @Test public void testResolvedMiniDyn() { this.resolveSaveDebuggingFileAndAssert("testResolvedMiniDyn", "MiniDyn"); } diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/typeattribute/TypeAttributeTest.java b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/typeattribute/TypeAttributeTest.java index f61e70d680..d6099ee280 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/typeattribute/TypeAttributeTest.java +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/persistence/cdmfolder/typeattribute/TypeAttributeTest.java @@ -35,6 +35,7 @@ import com.microsoft.commondatamodel.objectmodel.storage.LocalAdapter; import com.microsoft.commondatamodel.objectmodel.utilities.EventCallback; import com.microsoft.commondatamodel.objectmodel.utilities.JMapper; +import com.microsoft.commondatamodel.objectmodel.utilities.ResolveOptions; import java.io.File; import java.util.Arrays; import java.util.ArrayList; @@ -119,13 +120,12 @@ public void testNonNullDefaultValueAttribute() throws JSONException { */ @Test public void testReadingIsPrimaryKey() throws InterruptedException { - final String testInputPath = TestHelper.getInputFolderPath(TESTS_SUBPATH, "testReadingIsPrimaryKey"); - final CdmCorpusDefinition corpus = new CdmCorpusDefinition(); - corpus.getStorage().mount("local", new LocalAdapter(testInputPath)); - corpus.getStorage().setDefaultNamespace("local"); + final CdmCorpusDefinition corpus = TestHelper.getLocalCorpus(TESTS_SUBPATH, "testReadingIsPrimaryKey", null); + final ResolveOptions resOpt = new ResolveOptions(); + resOpt.setStrictValidation(true); // Read from an unresolved entity schema. - final CdmEntityDefinition entity = corpus.fetchObjectAsync("local:/TeamMembership.cdm.json/TeamMembership").join(); + final CdmEntityDefinition entity = corpus.fetchObjectAsync("local:/TeamMembership.cdm.json/TeamMembership", null, resOpt).join(); final CdmAttributeGroupReference attributeGroupRef = (CdmAttributeGroupReference) entity.getAttributes().get(0); final CdmAttributeGroupDefinition attributeGroup = (CdmAttributeGroupDefinition) attributeGroupRef.getExplicitReference(); final CdmTypeAttributeDefinition typeAttribute = (CdmTypeAttributeDefinition) attributeGroup.getMembers().get(0); @@ -138,7 +138,7 @@ public void testReadingIsPrimaryKey() throws InterruptedException { Assert.assertEquals(isIdentifiedBy1.getArguments().get(0).getValue(), "TeamMembership/(resolvedAttributes)/teamMembershipId"); // Read from a resolved entity schema. - final CdmEntityDefinition resolvedEntity = corpus.fetchObjectAsync("local:/TeamMembership_Resolved.cdm.json/TeamMembership").join(); + final CdmEntityDefinition resolvedEntity = corpus.fetchObjectAsync("local:/TeamMembership_Resolved.cdm.json/TeamMembership", null, resOpt).join(); final CdmTypeAttributeDefinition resolvedTypeAttribute = (CdmTypeAttributeDefinition) resolvedEntity.getAttributes().get(0); Assert.assertTrue(resolvedTypeAttribute.fetchIsPrimaryKey()); diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/corpus/testStrictValidation/Input/doc.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/corpus/testStrictValidation/Input/doc.cdm.json new file mode 100644 index 0000000000..87e198dc4b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/corpus/testStrictValidation/Input/doc.cdm.json @@ -0,0 +1,9 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "definitions": [ + { + "traitName": "is.CDM", + "extendsTrait": "is" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testForwardCompatibility/testAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testForwardCompatibility/testAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt index b5a2d38fb9..8d35725227 100644 --- a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testForwardCompatibility/testAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testForwardCompatibility/testAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt @@ -1,4 +1,9 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource @@ -6,12 +11,21 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/p Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/extends/CdmEntity Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/A Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B/Resolved_TestAllOperations/hasAttributes/B/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey -output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C/Resolved_TestAllOperations/hasAttributes/C/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/B +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/C +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/A_FK is.linkedEntity.identifier [Parameter (Name / DefaultValue): entityReferences / ] diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..4831c64bd8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..84a40c8dc5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..d140e00555 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..b85e4c00c5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..11db47873b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..036d38e697 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..79db84eb00 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..102fb216c4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..b4a669e6a7 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..9f349f008a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..22060cee5b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..c11c4a8497 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4a4da7a1bb --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7f03aa81eb --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d6913cca9b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..760d1c3e43 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/FriendGroup.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..21779b5f13 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/FriendGroup.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "GroupOfPeopleAge1", + "GroupOfPeopleAge2", + "GroupOfPeopleAge3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/ThreeMusketeers.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySource/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..c3ba904ee2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..c3dc03b884 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..10b6473ec9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..c2103b95b1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9dfc44639b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1a91399daa --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..770bfd4ae9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..4947e14174 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..183ddcde77 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..210a65544c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..8b2a5c2584 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..ccbf84132c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..1cc7f833ef --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b30ba00329 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..59b667f9bf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..746dd6979a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/FriendGroup.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..66a79be952 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/FriendGroup.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": { + "source": "ThreeMusketeers", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age1", + "age2", + "age3" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/ThreeMusketeers.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..898bb474ec --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..29617cf7d4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..ab440dd038 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..0a861e2127 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5633d36d1c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..817e308f12 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..731f8e007a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..acf59a37de --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..14b0e7d09f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..50d90d7ba8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..604ca61bbf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..6118ae63e2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2a48166864 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..91214b136e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..fc811c2dbc --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..c665ab52e9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/FriendGroup.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..e5dff68336 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/FriendGroup.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "age1", + "age2", + "age3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/ThreeMusketeers.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testArraySourceRename/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..e06f461e76 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/NewPerson.cdm.json @@ -0,0 +1,34 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "condition": "referenceOnly", + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testConditionalProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..ae71cfca00 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..275e07c722 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..7486d85c04 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..0be72be12d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..dcaaf42f73 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..21401b014e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..07e283469d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..56ff3c9fbd --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..7339589bec --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..2fad4d8b6e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..065822abbd --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..8114b48f53 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..3fd691fc03 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b78cae5a99 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..508a3c40db --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7ceeb71428 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..54b55ef957 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/NewPerson.cdm.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "PersonInfoAge", + "OccupationInfo" + ] + } + ], + "source": { + "entityReference": { + "entityName": "EmployedPerson", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person" + }, + { + "name": "OccupationInfo", + "entity": "Occupation" + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Occupation.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Occupation.cdm.json new file mode 100644 index 0000000000..9441ce0cc3 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Occupation.cdm.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Occupation", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "title", + "dataType": "string" + }, + { + "name": "company", + "dataType": "string" + }, + { + "name": "tenure", + "dataType": "integer" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..1adcb29194 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + }, + { + "corpusPath": "Occupation.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..6f2ef614b4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEANameProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + }, + { + "type": "LocalEntity", + "entityName": "Occupation", + "entitySchema": "Occupation.cdm.json/Occupation" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..bb752f3cc4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..648b6d88e9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..4d102cd18e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..e4d2986fd3 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..566488859d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6cb61844a2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f1e10a7a5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..2266dd17bd --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..f4db93b754 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/NewPerson.cdm.json @@ -0,0 +1,30 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testEmptyExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..a5397f4d5e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8cc3fa382e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..dc9b62925b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..54a335f38a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..316f331452 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..722a7c9220 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9f7e5f4c8c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0bffae9a4e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExcludeAttributes/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..7820e5d230 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,27 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..a5a4fc3457 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..d8062ffaea --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..293fd0e803 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..3275ccfc32 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0027dd0ba1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..6e10fce409 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..b2700722da --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..2aa84f4dc2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..c136af46ae --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..44574b5484 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..a4375d62ee --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2162871628 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..34b94171d0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6c3262f9c0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..c2b555f07e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Child.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Child.cdm.json new file mode 100644 index 0000000000..f74d9c8658 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Child.cdm.json @@ -0,0 +1,24 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": "Person", + "extendsEntityResolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "phoneNumber", + "email" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntity/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..aa4d5724b8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,29 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..e75f2812fa --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..bfde6d8958 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..4f9b2716e3 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..8bd9977a8b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..85807ee4aa --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..7bfedba49c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..73b340e97a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..ec027309de --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..dc7c397538 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..2846bba70a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..fe1185d9bb --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..9922350158 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..0d1fbbc8a1 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..f12d68507f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..0eacc29b9c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Child.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Child.cdm.json new file mode 100644 index 0000000000..534ad12da8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Child.cdm.json @@ -0,0 +1,27 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "phoneNumber", + "email" + ] + } + ] + }, + "hasAttributes": [] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testExtendsEntityProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..5accda3e69 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..1b20db6c36 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a8e5ab2706 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ade1e391cf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..562773ca9d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0eea58de31 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..c694ddc17b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..abf7743cc5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..b9ab1cbc76 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e5d1012a09 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4c1a52b3b7 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..67d84f5d7b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..65a9f1a779 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..9533378728 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d7d54a2b8b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..538d294544 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroup/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..cfc51ccedd --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..385731083f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..20b9b8feb7 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..d2a23cd44b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..54584aaa2c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..97c6b4eb63 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..2cc586a301 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..f42f28ebf4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..a257a3eb4a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..acb2f79773 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1295a201e0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b5542e967f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..94c2ba9cde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f903baacc --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..344a51646c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7d9f31af9d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..4881a6010a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b2dc538889 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a491730a37 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..f56801a5cf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..239574fa4b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6039be79e8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..039e6b5578 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..d484336523 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3201eeca56 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..9d3592bbca --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..c88b5f631c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d36ffe88bf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f40ad2bea8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7d8a767c83 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05bfdc6fc7 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..da56da271d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testGroupRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d37d09bd1d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8de0719c8f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e58d8be648 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..35ccd9ad3c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9816c7ced0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..b3b5be0d6a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..21f29e779e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..5012e46b82 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..c5c4025d78 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..7b492f672f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..d221c79165 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..42a0781548 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..cf960fd2b2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4571e90f54 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..5518c2e89a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0f676a9581 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..5b60c09ba7 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/NewPerson.cdm.json @@ -0,0 +1,40 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "email" + ] + }, + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "name", + "age", + "address" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testMultipleExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6c4f9ca606 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..043cdb5fee --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..0368d777c6 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..2010771295 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5fe3afa5c9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1e6f94af37 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..170a831d6b --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..4cf1ac2683 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6a1a157456 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..4d770b8336 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9c2620219c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d8a353b931 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f850cb0fc8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..196ed28794 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..a950eb4afa --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9891b7ad2e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..136f80d8b2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age" + ] + } + ], + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": "Person" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..ea8d2baad5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..ae777a8df9 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..3e8af81c67 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..aa3c262344 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..0f8eb12a69 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6b69860f3f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..ba961ca94c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..37af52eeef --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..215e7508cf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..40415a5647 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4f93e5d946 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b46819e324 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..ad5bed2eba --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..2afbbeeb2c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c8f7323979 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..17d9739e7e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/BusinessPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..e9778bd0f5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/BusinessPerson.cdm.json @@ -0,0 +1,57 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "socialId", + "account" + ] + } + }, + "entity": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Email.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Phone.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Social.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphic/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..e6a0e5f1c5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..dd664dda22 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..cb2be99126 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..f2789bf951 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..820aafe34e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..342475d633 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..4d778feb9f --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..4eb6571a18 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..5160ce6bd6 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..d7fff5da7d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1af2781a85 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..68e5e7c86e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..71250ebb5e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4bce14be16 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6958c9a099 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..967537f9b4 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/BusinessPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..505dc92539 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/BusinessPerson.cdm.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "isPolymorphicSource": true, + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "socialId", + "account" + ] + } + ], + "source": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Email.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Phone.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Social.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testPolymorphicProj/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d29efce605 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b7ddf27b38 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..18e58c7c72 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..67a0db86d6 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9ea535b310 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..96f03ce507 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..27551e14b2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..c769fee3f3 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6125d3161e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..27241ede7d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..91a8a24c34 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..698cffbe26 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4c7e071ff2 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..455731e731 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c0a6fc7340 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0983b02b7d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSAN/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..361d8cec5c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..9176b98b8c --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e8d2e7055d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..27b209abde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..421a22988e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..ef7aaa7187 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..893733ccff --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..9bc814b201 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..fee00cee12 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..6e99bf2c24 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..62e3a6c4aa --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..057aa581c5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..eb02b901c8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..92e2f2d32a --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..00ac14e06d --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..b879f69aec --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSSANRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6033a16a90 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..a599777fe3 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..87e533abde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ed9a874617 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..aef9bf0cab --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..c6deb403d8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..fc49d9bba8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..af5466cc19 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3637ced643 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..f9068f1663 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9167121ea5 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..72481caa02 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..b9f451e757 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..cf6cae27c8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..7ff32587fe --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9bd71210bf --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/NewPerson.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..a88d635959 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,41 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": { + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": { + "source": { + "source": "Person" + } + } + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/Person.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/_allImports.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/default.manifest.cdm.json b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Java/objectmodel/src/test/java/com/microsoft/commondatamodel/objectmodel/testdata/cdm/projection/testProjectionExclude/testSingleNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Java/pom.xml b/objectModel/Java/pom.xml index 0b3871ff3b..12f48762ad 100644 --- a/objectModel/Java/pom.xml +++ b/objectModel/Java/pom.xml @@ -5,7 +5,7 @@ - 1.0.9 + 1.0.10 com.microsoft.commondatamodel diff --git a/objectModel/Python/cdm/objectmodel/_document_library.py b/objectModel/Python/cdm/objectmodel/_document_library.py index 0977382708..e051d11a11 100644 --- a/objectModel/Python/cdm/objectmodel/_document_library.py +++ b/objectModel/Python/cdm/objectmodel/_document_library.py @@ -37,8 +37,13 @@ def _remove_document_path(self, path: str, folder: 'CdmFolderDefinition', doc: ' def _list_docs_not_indexed(self) -> Set['CdmDocumentDefinition']: """Returns a list of all the documents that are not indexed.""" + docs_not_indexed = [] # type: List[CdmDocumentDefinition] with self._document_library_lock: - return self._docs_not_indexed.copy() + # gets all the documents that needs indexing and set the currentlyIndexing flag to true. + for doc in self._docs_not_indexed: + doc._currently_indexing = True + docs_not_indexed.append(doc) + return docs_not_indexed def _list_docs_not_loaded(self) -> Set[str]: """Returns a list of all the documents that are not loaded.""" diff --git a/objectModel/Python/cdm/objectmodel/cdm_corpus_def.py b/objectModel/Python/cdm/objectmodel/cdm_corpus_def.py index 8d98a0b9f7..d46c0c43fa 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_corpus_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_corpus_def.py @@ -1,10 +1,12 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. +# Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. import asyncio from collections import defaultdict from datetime import datetime +import nest_asyncio from typing import cast, Callable, Dict, List, Optional, Set, TypeVar, Union, TYPE_CHECKING, Tuple +import warnings from cdm.storage import StorageManager from cdm.enums import CdmAttributeContextType, CdmObjectType, CdmStatusLevel, CdmValidationStep @@ -82,7 +84,6 @@ def __init__(self): self._outgoing_relationships = defaultdict(list) # type: Dict[CdmObjectDefinition, List[CdmE2ERelationship]] self._definition_reference_symbols = {} # type: Dict[str, SymbolSet] self._empty_rts = {} # type: Dict[str, ResolvedTraitSet] - self._object_cache = {} # type: Dict[str, CdmObject] self._document_library = DocumentLibrary() self._storage = StorageManager(self) self._persistence = PersistenceLayer(self) @@ -259,7 +260,7 @@ def _const_type_check(self, res_opt: 'ResolveOptions', current_doc: 'CdmDocument async def create_root_manifest_async(self, corpus_path: str) -> Optional['CdmManifestDefinition']: if self._is_path_manifest_document(corpus_path): - self._root_manifest = await self._fetch_object_async(corpus_path) + self._root_manifest = await self.fetch_object_async(corpus_path) return self._root_manifest return None @@ -548,44 +549,41 @@ def _fetch_definition_cache_tag(self, res_opt: 'ResolveOptions', definition: 'Cd return None - async def fetch_object_async(self, object_path: str, relative_object: Optional['CdmObject'] = None, shallow_validation: Optional[bool] = False, force_reload: Optional[bool] = False) -> 'CdmObject': - """gets an object by the path from the Corpus.""" - return await self._fetch_object_async(object_path, relative_object=relative_object, force_reload=force_reload, shallow_validation=shallow_validation) - - def _index_documents(self, res_opt: 'ResolveOptions') -> bool: + def _index_documents(self, res_opt: 'ResolveOptions', strict_validation: bool) -> bool: docs_not_indexed = self._document_library._list_docs_not_indexed() # type: Set[CdmDocumentDefinition] + if not docs_not_indexed: return True - # index any imports for doc in docs_not_indexed: - if doc._needs_indexing: + if not doc._declarations_indexed: logger.debug(self._TAG, self.ctx, 'index start: {}'.format(doc.at_corpus_path), self._index_documents.__name__) doc._clear_caches() - doc._get_import_priorities() # check basic integrity for doc in docs_not_indexed: - if doc._needs_indexing: - doc.is_valid = True # assume valid unless this fails - if not self._check_object_integrity(doc): - doc.is_valid = False + if not doc._declarations_indexed: + doc._is_valid = self._check_object_integrity(doc) # declare definitions of objects in this doc for doc in docs_not_indexed: - if doc._needs_indexing and doc.is_valid: + if not doc._declarations_indexed and doc._is_valid: self._declare_object_definitions(doc, '') - # make sure we can find everything that is named by reference - for doc in docs_not_indexed: - if doc._needs_indexing and doc.is_valid: - res_opt_local = CdmObject._copy_resolve_options(res_opt) - res_opt_local.wrt_doc = doc - self._resolve_object_definitions(res_opt_local, doc) + if strict_validation: + # index any imports + for doc in docs_not_indexed: + doc._get_import_priorities() - # now resolve any trait arguments that are type object - for doc in docs_not_indexed: - if doc._needs_indexing: + # make sure we can find everything that is named by reference + for doc in docs_not_indexed: + if doc._is_valid: + res_opt_local = CdmObject._copy_resolve_options(res_opt) + res_opt_local.wrt_doc = doc + self._resolve_object_definitions(res_opt_local, doc) + + # now resolve any trait arguments that are type object + for doc in docs_not_indexed: res_opt_local = CdmObject._copy_resolve_options(res_opt) res_opt_local.wrt_doc = doc self._resolve_trait_arguments(res_opt_local, doc) @@ -593,9 +591,8 @@ def _index_documents(self, res_opt: 'ResolveOptions') -> bool: # finish up # make a copy to avoid error iterating over set that is modified in loop for doc in docs_not_indexed.copy(): - if doc._needs_indexing: - logger.debug(self._TAG, self.ctx, 'index finish: {}'.format(doc.at_corpus_path), self._index_documents.__name__) - self._finish_document_resolve(doc) + logger.debug(self._TAG, self.ctx, 'index finish: {}'.format(doc.at_corpus_path), self._index_documents.__name__) + self._finish_document_resolve(doc, strict_validation) return True @@ -710,26 +707,29 @@ def _fetch_empty_resolved_trait_set(self, res_opt: 'ResolveOptions') -> 'Resolve return rts - def _finish_document_resolve(self, doc: 'CdmDocumentDetinition') -> None: + def _finish_document_resolve(self, doc: 'CdmDocumentDetinition', strict_validation: bool) -> None: + was_indexed_previously = doc._declarations_indexed + doc._currently_indexing = False - doc._imports_indexed = True - doc._needs_indexing = False + doc._imports_indexed = doc._imports_indexed or not strict_validation + doc._declarations_indexed = True + doc._needs_indexing = not strict_validation self._document_library._mark_document_as_indexed(doc) - if doc.is_valid: + # if the document declarations were indexed previously, do not log again. + if not was_indexed_previously and doc._is_valid: for definition in doc.definitions: if definition.object_type == CdmObjectType.ENTITY_DEF: logger.debug(self._TAG, self.ctx, 'indexed entity: {}'.format(definition.at_corpus_path)) def _finish_resolve(self) -> None: - ctx = self.ctx # cleanup references logger.debug(self._TAG, self.ctx, 'finishing...') # turn elevated traits back on, they are off by default and should work fully now that everything is resolved all_documents = self._document_library._list_all_documents() for fd in all_documents: - self._finish_document_resolve(fd[1]) + self._finish_document_resolve(fd[1], False) async def _load_folder_or_document(self, object_path: str, force_reload: Optional[bool] = False, res_opt: Optional['ResolveOptions'] = None) -> Optional['CdmContainerDefinition']: if not object_path: @@ -839,6 +839,7 @@ def _register_symbol(self, symbol_def: str, in_doc: 'CdmDocumentDefinition') -> def _remove_document_objects(self, folder: 'CdmFolderDefinition', doc_def: 'CdmDocumentDefinition') -> None: doc = cast('CdmDocumentDefinition', doc_def) + # the field defintion_wrt_tag has been removed # Don't worry about defintion_wrt_tag because it uses the doc ID that won't get re-used in this session unless # there are more than 4 billion objects every symbol defined in this document is pointing at the document, so # remove from cache. Also remove the list of docs that it depends on. @@ -849,8 +850,6 @@ def _remove_document_objects(self, folder: 'CdmFolderDefinition', doc_def: 'CdmD self._document_library._remove_document_path(path, folder, doc) def _remove_object_definitions(self, doc: CdmDocumentDefinition) -> None: - ctx = self.ctx - def visit_callback(i_object: 'CdmObject', path: str) -> bool: if path.find('(unspecified)') > 0: return True @@ -880,6 +879,8 @@ async def _resolve_imports_async(self, doc: 'CdmDocumentDefinition', res_opt: 'R async def resolve_references_and_validate_async(self, stage: 'CdmValidationStep', stage_through: 'CdmValidationStep', res_opt: Optional['ResolveOptions'] = None) -> 'CdmValidationStep': + warnings.warn('This function is likely to be removed soon.', DeprecationWarning) + # use the provided directives or use the current default directives = None # type: AttributeResolutionDirectiveSet if res_opt is not None: @@ -1086,6 +1087,11 @@ def _resolve_symbol_reference(self, res_opt: 'ResolveOptions', from_doc: 'CdmDoc wrt_doc = res_opt.wrt_doc + loop = asyncio.get_event_loop() + nest_asyncio.apply(loop) + if not loop.run_until_complete(wrt_doc._index_if_needed(res_opt, True)): + logger.error(self._TAG, self.ctx, 'Couldn\'t index source document.', '_resolve_symbol_reference') + # get the array of documents where the symbol is defined symbol_docs_result = self._docs_for_symbol(res_opt, wrt_doc, from_doc, symbol_def) doc_best = symbol_docs_result.doc_best @@ -1246,6 +1252,7 @@ def _unregister_definition_reference_documents(self, definition: 'CdmObject', ki self._definition_reference_symbols.pop(key, None) def visit(self, path_from: str, pre_children: 'VisitCallback', post_children: 'VisitCallback') -> bool: + warnings.warn('Function deprecated', DeprecationWarning) return False async def _compute_last_modified_time_async(self, corpus_path: str, obj: Optional['CdmObject'] = None) -> datetime: @@ -1333,10 +1340,14 @@ def _map_reference_type(of_type: 'CdmObjectType') -> 'CdmObjectType': return CdmObjectType.ERROR - async def _fetch_object_async(self, object_path: str, relative_object: Optional['CdmObject'] = None, - force_reload: Optional[bool] = False, shallow_validation: Optional[bool] = False) -> 'CdmObject': + async def fetch_object_async(self, object_path: str, relative_object: Optional['CdmObject'] = None, shallow_validation: Optional[bool] = False, \ + force_reload: Optional[bool] = False, res_opt: Optional['ResolveOptions'] = None) -> 'CdmObject': + """gets an object by the path from the Corpus.""" from cdm.persistence import PersistenceLayer + if res_opt is None: + res_opt = ResolveOptions() + object_path = self.storage.create_absolute_corpus_path(object_path, relative_object) document_path = object_path document_name_index = object_path.rfind(PersistenceLayer.CDM_EXTENSION) @@ -1346,21 +1357,21 @@ async def _fetch_object_async(self, object_path: str, relative_object: Optional[ document_name_index += len(PersistenceLayer.CDM_EXTENSION) document_path = object_path[0: document_name_index] - logger.debug(self._TAG, self.ctx, 'request object: {}'.format(object_path), self._fetch_object_async.__name__) + logger.debug(self._TAG, self.ctx, 'request object: {}'.format(object_path), self.fetch_object_async.__name__) obj = await self._load_folder_or_document(document_path, force_reload) if not obj: return - res_opt = ResolveOptions(wrt_doc=obj, directives=AttributeResolutionDirectiveSet()) # get imports and index each document that is loaded if isinstance(obj, CdmDocumentDefinition): - res_opt.shallow_validation = shallow_validation - if not await obj._index_if_needed(res_opt): + if res_opt.shallow_validation is None: + res_opt.shallow_validation = shallow_validation + if not await obj._index_if_needed(res_opt, False): return None - if not obj.is_valid: + if not obj._is_valid: logger.error(self._TAG, self.ctx, 'The requested path: {} involves a document that failed validation'.format( - object_path), self._fetch_object_async.__name__) + object_path), self.fetch_object_async.__name__) return None if document_path == object_path: @@ -1376,7 +1387,7 @@ async def _fetch_object_async(self, object_path: str, relative_object: Optional[ result = obj._fetch_object_from_document_path(remaining_object_path, res_opt) if not result: logger.error(self._TAG, self.ctx, 'Could not find symbol "{}" in document [{}]'.format( - remaining_object_path, obj.at_corpus_path), self._fetch_object_async.__name__) + remaining_object_path, obj.at_corpus_path), self.fetch_object_async.__name__) return result diff --git a/objectModel/Python/cdm/objectmodel/cdm_data_partition_pattern_def.py b/objectModel/Python/cdm/objectmodel/cdm_data_partition_pattern_def.py index 6df6b7d4bb..5805cfbaba 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_data_partition_pattern_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_data_partition_pattern_def.py @@ -102,6 +102,7 @@ async def file_status_check_async(self) -> None: # get a list of all corpus_paths under the root. file_info_list = await adapter.fetch_all_files_async(path_tuple[1]) except Exception as e: + file_info_list = None logger.warning(self._TAG, self.ctx, 'The folder location \'{}\' described by a partition pattern does not exist'.format( root_corpus), self.file_status_check_async.__name__) @@ -147,12 +148,13 @@ async def file_status_check_async(self) -> None: # put the original but cleaned up root back onto the matched doc as the location stored in the partition. location_corpus_path = root_cleaned + fi + full_path = root_corpus + fi # Remove namespace from path - path_tuple = StorageUtils.split_namespace_path(location_corpus_path) + path_tuple = StorageUtils.split_namespace_path(full_path) if not path_tuple: logger.error(self._TAG, self.ctx, 'The corpus path should not be null or empty.', self.file_status_check_async.__name__) return - last_modified_time = await adapter.compute_last_modified_time_async(adapter.create_adapter_path(path_tuple[1])) + last_modified_time = await adapter.compute_last_modified_time_async(path_tuple[1]) cast('CdmLocalEntityDeclarationDefinition', self.owner)._create_partition_from_pattern( location_corpus_path, self.exhibits_traits, args, self.specialized_schema, last_modified_time) @@ -166,28 +168,28 @@ def glob_pattern_to_regex(self, pattern: str) -> str: while i < len(pattern): curr_char = pattern[i] - if curr_char is '.': + if curr_char == '.': # escape '.' characters new_pattern.append('\\.') - elif curr_char is '\\': + elif curr_char == '\\': # convert backslash into slash new_pattern.append('/') - elif curr_char is '?': + elif curr_char == '?': # question mark in glob matches any single character new_pattern.append('.') - elif curr_char is '*': + elif curr_char == '*': next_char = pattern[i + 1] if i + 1 < len(pattern) else None - if next_char is '*': + if next_char == '*': prev_char = pattern[i - 1] if i - 1 >= 0 else None post_char = pattern[i + 2] if i + 2 < len(pattern) else None # globstar must be at beginning of pattern, end of pattern, or wrapped in separator characters - if (prev_char is None or prev_char is '/' or prev_char is '\\') and (post_char is None or post_char is '/' or post_char is '\\'): + if (prev_char is None or prev_char == '/' or prev_char == '\\') and (post_char is None or post_char == '/' or post_char == '\\'): new_pattern.append('.*') # globstar can match zero or more subdirectories. If it matches zero, then there should not be # two consecutive '/' characters so make the second one optional - if (prev_char is '/' or prev_char is '\\') and (post_char is '/' or post_char is '\\'): + if (prev_char == '/' or prev_char == '\\') and (post_char == '/' or post_char == '\\'): new_pattern.append('/?') i = i + 1 else: diff --git a/objectModel/Python/cdm/objectmodel/cdm_document_def.py b/objectModel/Python/cdm/objectmodel/cdm_document_def.py index fc65e5db6b..5559d710b8 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_document_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_document_def.py @@ -3,6 +3,7 @@ from datetime import datetime from typing import Dict, Optional, Set, Tuple, TYPE_CHECKING +import warnings from cdm.enums import CdmObjectType from cdm.utilities import CopyOptions, logger, ResolveOptions, Errors @@ -64,6 +65,7 @@ def __init__(self, ctx: 'CdmCorpusContext', name: str) -> None: # internal self._currently_indexing = False + self._declarations_indexed = False self._file_system_modified_time = None # type: Optional[datetime] self._imports_indexed = False self._import_priorities = None # type: Optional[ImportPriorities] @@ -71,7 +73,7 @@ def __init__(self, ctx: 'CdmCorpusContext', name: str) -> None: self._needs_indexing = True self._imports = CdmImportCollection(self.ctx, self) self._definitions = CdmDefinitionCollection(self.ctx, self) - self.is_valid = True # types: bool + self._is_valid = True # types: bool self._TAG = CdmDocumentDefinition.__name__ self._clear_caches() @@ -93,6 +95,11 @@ def definitions(self) -> 'CdmDefinitionCollection': """the document definitions.""" return self._definitions + @property + def is_valid(self) -> str: + warnings.warn('Property deprecated.', DeprecationWarning) + return self._is_valid + @property def object_type(self) -> 'CdmObjectType': return CdmObjectType.DOCUMENT_DEF @@ -132,23 +139,27 @@ def copy(self, res_opt: Optional['ResolveOptions'] = None, host: Optional['CdmDo return copy - async def _index_if_needed(self, res_opt: 'ResolveOptions') -> bool: - if not self._needs_indexing: + async def _index_if_needed(self, res_opt: 'ResolveOptions', strict_validation: bool = False) -> bool: + if not self._needs_indexing or self._currently_indexing: return True if not self.folder: logger.error(self._TAG, self.ctx, 'Document \'{}\' is not in a folder'.format(self.name), self._index_if_needed.__name__) return False - # make the corpus internal machinery pay attention to this document for this call corpus = self.folder._corpus - await corpus._resolve_imports_async(self, res_opt) + # if the strictValidation is specified by the user in the ResolveOptions that value has precedence. + if res_opt.strict_validation is not None: + strict_validation = res_opt.strict_validation - # maintain actual current doc + if strict_validation: + await corpus._resolve_imports_async(self, res_opt) + + # make the corpus internal machinery pay attention to this document for this call corpus._document_library._mark_document_for_indexing(self) - return corpus._index_documents(res_opt) + return corpus._index_documents(res_opt, strict_validation) def _get_import_priorities(self) -> 'ImportPriorities': if not self._import_priorities: @@ -393,12 +404,15 @@ async def refresh_async(self, res_opt: Optional['ResolveOptions'] = None) -> boo """updates indexes for document content, call this after modifying objects in the document""" res_opt = res_opt if res_opt is not None else ResolveOptions(wrt_doc=self, directives=self.ctx.corpus.default_resolution_directives) + self._declarations_indexed = False + self._imports_indexed = False + self._import_priorities = None self._needs_indexing = True - self.is_valid = True - return await self._index_if_needed(res_opt) + self._is_valid = True + return await self._index_if_needed(res_opt, True) async def _reload_async(self) -> None: - await self.ctx.corpus._fetch_object_async(self.corpus_path, force_reload=True) + await self.ctx.corpus.fetch_object_async(self.corpus_path, force_reload=True) async def save_as_async(self, new_name: str, save_referenced: bool = False, options: Optional['CopyOptions'] = None) -> bool: """saves the document back through the adapter in the requested format diff --git a/objectModel/Python/cdm/objectmodel/cdm_entity_def.py b/objectModel/Python/cdm/objectmodel/cdm_entity_def.py index 602f8af9fa..10cd7391c5 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_entity_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_entity_def.py @@ -295,7 +295,7 @@ async def create_resolved_entity_async(self, new_ent_name: str, res_opt: Optiona target_at_corpus_path), self.create_resolved_entity_async.__name__) return None - if not await res_opt.wrt_doc._index_if_needed(res_opt): + if not await res_opt.wrt_doc._index_if_needed(res_opt, True): logger.error(self._TAG, self.ctx, 'Couldn\'t index source document.', self.create_resolved_entity_async.__name__) return None diff --git a/objectModel/Python/cdm/objectmodel/cdm_local_entity_declaration_def.py b/objectModel/Python/cdm/objectmodel/cdm_local_entity_declaration_def.py index e2a31628b0..b3393b262a 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_local_entity_declaration_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_local_entity_declaration_def.py @@ -65,22 +65,27 @@ def _create_partition_from_pattern(self, file_path: str, exhibits_traits: 'CdmTr new_partition.arguments = args.copy() self.data_partitions.append(new_partition) - async def file_status_check_async(self) -> None: + async def file_status_check_async(self) -> None: """Check the modified time for this object and any children.""" - full_path = self.ctx.corpus.storage.create_absolute_corpus_path(self.entity_path, self.in_document) - modified_time = await self.ctx.corpus._compute_last_modified_time_async(full_path, self) - for partition in self.data_partitions: - await partition.file_status_check_async() + context = self.ctx.corpus.storage.fetch_adapter(self.in_document.namespace).create_file_query_cache_context() + try: + full_path = self.ctx.corpus.storage.create_absolute_corpus_path(self.entity_path, self.in_document) + modified_time = await self.ctx.corpus._compute_last_modified_time_async(full_path, self) - for pattern in self.data_partition_patterns: - await pattern.file_status_check_async() + for pattern in self.data_partition_patterns: + await pattern.file_status_check_async() - self.last_file_status_check_time = datetime.now(timezone.utc) - self.last_file_modified_time = time_utils._max_time(modified_time, self.last_file_modified_time) + for partition in self.data_partitions: + await partition.file_status_check_async() - await self.report_most_recent_time_async(self.last_file_modified_time) + self.last_file_status_check_time = datetime.now(timezone.utc) + self.last_file_modified_time = time_utils._max_time(modified_time, self.last_file_modified_time) + await self.report_most_recent_time_async(self.last_file_modified_time) + finally: + context.dispose() + def get_name(self) -> str: return self.entity_name diff --git a/objectModel/Python/cdm/objectmodel/cdm_manifest_def.py b/objectModel/Python/cdm/objectmodel/cdm_manifest_def.py index 9fc3f9ac89..8185b00999 100644 --- a/objectModel/Python/cdm/objectmodel/cdm_manifest_def.py +++ b/objectModel/Python/cdm/objectmodel/cdm_manifest_def.py @@ -228,23 +228,28 @@ async def create_resolved_manifest_async(self, new_manifest_name: str, new_entit async def file_status_check_async(self) -> None: """Check the modified time for this object and any children.""" - modified_time = await self.ctx.corpus._fetch_last_modified_time_from_object_async(self) - for entity in self.entities: - await entity.file_status_check_async() + context = self.ctx.corpus.storage.fetch_adapter(self.in_document.namespace).create_file_query_cache_context() + try: + modified_time = await self.ctx.corpus._fetch_last_modified_time_from_object_async(self) + + for entity in self.entities: + await entity.file_status_check_async() - for sub_manifest in self.sub_manifests: - await sub_manifest.file_status_check_async() + for sub_manifest in self.sub_manifests: + await sub_manifest.file_status_check_async() - self.last_file_status_check_time = datetime.now(timezone.utc) - if not self.last_file_modified_time: - self.last_file_modified_time = self._file_system_modified_time + self.last_file_status_check_time = datetime.now(timezone.utc) + if not self.last_file_modified_time: + self.last_file_modified_time = self._file_system_modified_time - # Reload the manifest if it has been updated in the file system. - if modified_time and self._file_system_modified_time and modified_time != self._file_system_modified_time: - await self._reload_async() - self.last_file_modified_time = time_utils._max_time(modified_time, self.last_file_modified_time) - self._file_system_modified_time = self.last_file_modified_time + # Reload the manifest if it has been updated in the file system. + if modified_time and self._file_system_modified_time and modified_time != self._file_system_modified_time: + await self._reload_async() + self.last_file_modified_time = time_utils._max_time(modified_time, self.last_file_modified_time) + self._file_system_modified_time = self.last_file_modified_time + finally: + context.dispose() async def _get_entity_from_reference(self, entity: 'CdmEntityDeclarationDefinition', manifest: 'CdmManifestDefinition') -> 'CdmEntityDefinition': entity_path = await self._get_entity_path_from_declaration(entity, cast('CdmObject', manifest)) diff --git a/objectModel/Python/cdm/objectmodel/projections/cdm_operation_exclude_attributes.py b/objectModel/Python/cdm/objectmodel/projections/cdm_operation_exclude_attributes.py index f11441a2c4..2f09b82bc9 100644 --- a/objectModel/Python/cdm/objectmodel/projections/cdm_operation_exclude_attributes.py +++ b/objectModel/Python/cdm/objectmodel/projections/cdm_operation_exclude_attributes.py @@ -3,13 +3,16 @@ from typing import Optional, TYPE_CHECKING, List -from cdm.enums import CdmObjectType, CdmOperationType -from cdm.utilities import logger, Errors +from cdm.enums import CdmObjectType, CdmOperationType, CdmAttributeContextType +from cdm.objectmodel import CdmAttributeContext +from cdm.resolvedmodel.projections.projection_attribute_state import ProjectionAttributeState +from cdm.resolvedmodel.projections.projection_resolution_common_util import ProjectionResolutionCommonUtil +from cdm.utilities import logger, Errors, AttributeContextParameters from .cdm_operation_base import CdmOperationBase if TYPE_CHECKING: - from cdm.objectmodel import CdmCorpusContext, CdmAttributeContext + from cdm.objectmodel import CdmCorpusContext from cdm.resolvedmodel.projections.projection_attribute_state_set import ProjectionAttributeStateSet from cdm.resolvedmodel.projections.projection_context import ProjectionContext from cdm.utilities import VisitCallback, ResolveOptions @@ -21,7 +24,7 @@ class CdmOperationExcludeAttributes(CdmOperationBase): def __init__(self, ctx: 'CdmCorpusContext') -> None: super().__init__(ctx) - self.exclude_attributes = None # type: List[str] + self.exclude_attributes = [] # type: List[str] self.type = CdmOperationType.EXCLUDE_ATTRIBUTES # type: CdmOperationType # --- internal --- @@ -45,7 +48,7 @@ def is_derived_from(self, base: str, res_opt: Optional['ResolveOptions'] = None) def validate(self) -> bool: missing_fields = [] - if not bool(self.exclude_attributes): + if self.exclude_attributes is None: missing_fields.append('exclude_attributes') if len(missing_fields) > 0: @@ -70,6 +73,51 @@ def visit(self, path_from: str, pre_children: 'VisitCallback', post_children: 'V return False - def _append_projection_attribute_state(self, proj_ctx: 'ProjectionContext', proj_attr_state_set: 'ProjectionAttributeStateSet', attr_ctx: 'CdmAttributeContext') -> 'ProjectionAttributeStateSet': - logger.error(self._TAG, self.ctx, 'Projection operation not implemented yet.', '_append_projection_attribute_state') - return None + def _append_projection_attribute_state(self, proj_ctx: 'ProjectionContext', proj_output_set: 'ProjectionAttributeStateSet', attr_ctx: 'CdmAttributeContext') -> 'ProjectionAttributeStateSet': + # Create a new attribute context for the operation + attr_ctx_op_exclude_attrs_param = AttributeContextParameters() + attr_ctx_op_exclude_attrs_param._under = attr_ctx + attr_ctx_op_exclude_attrs_param._type = CdmAttributeContextType.OPERATION_EXCLUDE_ATTRIBUTES + attr_ctx_op_exclude_attrs_param._name = 'operation/index{}/operationExcludeAttributes'.format(self._index) + attr_ctx_op_exclude_attrs = CdmAttributeContext._create_child_under(proj_ctx._projection_directive._res_opt, attr_ctx_op_exclude_attrs_param) + + # Get the top-level attribute names of the attributes to exclude + # We use the top-level names because the exclude list may contain a previous name our current resolved attributes had + top_level_exclude_attribute_names = ProjectionResolutionCommonUtil._get_top_list(proj_ctx, self.exclude_attributes) + + # Iterate through all the projection attribute states generated from the source's resolved attributes + # Each projection attribute state contains a resolved attribute that it is corresponding to + for current_PAS in proj_ctx._current_attribute_state_set._values: + # Check if the current projection attribute state's resolved attribute is in the list of attributes to exclude + # If this attribute is not in the exclude list, then we are including it in the output + if current_PAS._current_resolved_attribute.resolved_name not in top_level_exclude_attribute_names: + # Create a new attribute context for the attribute that we are including + attr_ctx_added_attr_param = AttributeContextParameters() + attr_ctx_added_attr_param._under = attr_ctx + attr_ctx_added_attr_param._type = CdmAttributeContextType.ATTRIBUTE_DEFINITION + attr_ctx_added_attr_param._name = current_PAS._current_resolved_attribute.resolved_name + attr_ctx_added_attr = CdmAttributeContext._create_child_under(proj_ctx._projection_directive._res_opt, attr_ctx_added_attr_param) + + # Create a projection attribute state for the included attribute + # We only create projection attribute states for attributes that are not in the exclude list + # Add the current projection attribute state as the previous state of the new projection attribute state + new_PAS = ProjectionAttributeState(proj_output_set._ctx) + new_PAS._current_resolved_attribute = current_PAS._current_resolved_attribute + new_PAS._previous_state_list = [current_PAS] + + proj_output_set._add(new_PAS) + else: + # The current projection attribute state's resolved attribute is in the exclude list + + # Get the attribute name the way it appears in the exclude list + # For our attribute context, we want to use the attribute name the attribute has in the exclude list rather than its current name + exclude_attribute_name = top_level_exclude_attribute_names[current_PAS._current_resolved_attribute.resolved_name] + + # Create a new attribute context for the excluded attribute + attr_ctx_excluded_attr_param = AttributeContextParameters() + attr_ctx_excluded_attr_param._under = attr_ctx_op_exclude_attrs + attr_ctx_excluded_attr_param._type = CdmAttributeContextType.ATTRIBUTE_DEFINITION + attr_ctx_excluded_attr_param._name = exclude_attribute_name + attr_ctx_excluded_attr = CdmAttributeContext._create_child_under(proj_ctx._projection_directive._res_opt, attr_ctx_excluded_attr_param) + + return proj_output_set diff --git a/objectModel/Python/cdm/persistence/cdmfolder/e2e_relationship_persistence.py b/objectModel/Python/cdm/persistence/cdmfolder/e2e_relationship_persistence.py index 9badb0a5c3..2b8dc8af48 100644 --- a/objectModel/Python/cdm/persistence/cdmfolder/e2e_relationship_persistence.py +++ b/objectModel/Python/cdm/persistence/cdmfolder/e2e_relationship_persistence.py @@ -4,6 +4,7 @@ from cdm.enums import CdmObjectType from cdm.objectmodel import CdmCorpusContext, CdmE2ERelationship from cdm.utilities import CopyOptions, ResolveOptions +from cdm.utilities.string_utils import StringUtils from .types import E2ERelationship @@ -12,7 +13,8 @@ class E2ERelationshipPersistence: @staticmethod def from_data(ctx: CdmCorpusContext, data: E2ERelationship) -> CdmE2ERelationship: relationship = ctx.corpus.make_object(CdmObjectType.E2E_RELATIONSHIP_DEF) - relationship.relationship_name = data.name + if not StringUtils.is_null_or_white_space(data.name): + relationship.relationship_name = data.name relationship.from_entity = data.fromEntity relationship.from_entity_attribute = data.fromEntityAttribute relationship.to_entity = data.toEntity @@ -23,7 +25,8 @@ def from_data(ctx: CdmCorpusContext, data: E2ERelationship) -> CdmE2ERelationshi @staticmethod def to_data(instance: 'CdmE2ERelationship', res_opt: ResolveOptions, options: CopyOptions) -> E2ERelationship: relationship = E2ERelationship() - relationship.name = instance.relationship_name + if not StringUtils.is_null_or_white_space(instance.relationship_name): + relationship.name = instance.relationship_name relationship.fromEntity = instance.from_entity relationship.fromEntityAttribute = instance.from_entity_attribute relationship.toEntity = instance.to_entity diff --git a/objectModel/Python/cdm/resolvedmodel/projections/projection_resolution_common_util.py b/objectModel/Python/cdm/resolvedmodel/projections/projection_resolution_common_util.py index e8b0d62281..a84a51429b 100644 --- a/objectModel/Python/cdm/resolvedmodel/projections/projection_resolution_common_util.py +++ b/objectModel/Python/cdm/resolvedmodel/projections/projection_resolution_common_util.py @@ -91,16 +91,25 @@ def _get_leaf_list(proj_ctx: 'ProjectionContext', attr_name: str) -> List['Proje return result.leaf if result else None @staticmethod - def _get_top(proj_ctx: 'ProjectionContext', attr_name: str) -> List['ProjectionAttributeState']: - """Get top node of the projection state tree for non-polymorphic scenarios""" - result = SearchResult() - for top in proj_ctx._current_attribute_state_set._values: - st = SearchStructure() - st = SearchStructure._build_structure(top, top, attr_name, st, False, 0) - if st and st._result.found_flag == True: - result = st._result - - return result.top if result else None + def _get_top_list(proj_ctx: 'ProjectionContext', attr_names: List[str]) -> Dict[str, str]: + """Gets the names of the top-level nodes in the projection state tree (for non-polymorphic scenarios) that match a set of attribute names """ + # This dictionary contains a mapping from the top-level name of an attribute + # to the attribute name the top-level name was derived from (the name contained in the given list) + top_level_attribute_names = {} + + # Iterate through each attribute name in the list and search for their top-level names + for attr_name in attr_names: + # Iterate through each projection attribute state in the current set and check if its + # current resolved attribute's name is the top-level name of the current attrName + for top in proj_ctx._current_attribute_state_set._values: + st = SearchStructure() + st = SearchStructure._build_structure(top, top, attr_name, st, False, 0) + # Found the top-level name + if st and st._result.found_flag: + # Create a mapping from the top-level name of the attribute to the name it has in the list + top_level_attribute_names[top._current_resolved_attribute.resolved_name] = attr_name + + return top_level_attribute_names @staticmethod def _convert_to_list(top: 'ProjectionAttributeState') -> List['ProjectionAttributeState']: diff --git a/objectModel/Python/cdm/storage/adls.py b/objectModel/Python/cdm/storage/adls.py index ff40a3acac..2f1ec714b9 100644 --- a/objectModel/Python/cdm/storage/adls.py +++ b/objectModel/Python/cdm/storage/adls.py @@ -29,8 +29,12 @@ class ADLSAdapter(NetworkAdapter, StorageAdapterBase): """Azure Data Lake Storage Gen2 storage adapter""" + ADLS_DEFAULT_TIMEOUT = 9000 + def __init__(self, hostname: Optional[str] = None, root: Optional[str] = None, **kwargs) -> None: super().__init__() + super(NetworkAdapter, self).__init__() + super(StorageAdapterBase, self).__init__() # --- internal --- self._adapter_paths = {} # type: Dict[str, str] @@ -44,6 +48,8 @@ def __init__(self, hostname: Optional[str] = None, root: Optional[str] = None, * self._type = 'adls' self._root = None self._sub_path = None # type: Optional[str] + self._file_modified_time_cache = {} # type: Dict[str, datetime] + self.timeout = self.ADLS_DEFAULT_TIMEOUT # type: int if root and hostname: self.root = root # type: Optional[str] @@ -51,7 +57,6 @@ def __init__(self, hostname: Optional[str] = None, root: Optional[str] = None, * self.client_id = kwargs.get('client_id', None) # type: Optional[str] self.secret = kwargs.get('secret', None) # type: Optional[str] self.shared_key = kwargs.get('shared_key', None) # type: Optional[str] - self.location_hint = None # type: Optional[str] # --- internal --- self._tenant = kwargs.get('tenant', None) # type: Optional[str] @@ -87,20 +92,30 @@ def can_write(self) -> bool: return True def clear_cache(self) -> None: - pass + self._file_modified_time_cache.clear() async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime]: - adapter_path = self.create_adapter_path(corpus_path) - request = self._build_request(adapter_path, 'HEAD') + cachedValue = None + if self._is_cache_enabled: + cachedValue = self._file_modified_time_cache.get(corpus_path) - try: - cdm_response = await self._http_client._send_async(request, self.wait_time_callback) - if cdm_response.status_code == HTTPStatus.OK: - return dateutil.parser.parse(typing.cast(str, cdm_response.response_headers['Last-Modified'])) - except Exception: - pass + if cachedValue is not None: + return cachedValue + else: + adapter_path = self.create_adapter_path(corpus_path) + request = self._build_request(adapter_path, 'HEAD') + + try: + cdm_response = await self._http_client._send_async(request, self.wait_time_callback) + if cdm_response.status_code == HTTPStatus.OK: + lastTime = dateutil.parser.parse(typing.cast(str, cdm_response.response_headers['Last-Modified'])) + if lastTime is not None and self._is_cache_enabled: + self._file_modified_time_cache[corpus_path] = lastTime + return lastTime + except Exception: + pass - return None + return None def create_adapter_path(self, corpus_path: str) -> str: if corpus_path and corpus_path.startswith('//'): @@ -141,7 +156,7 @@ async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: return None url = 'https://{}/{}'.format(self.hostname, self._file_system) - directory = urllib.parse.urljoin(self._sub_path, self._format_corpus_path(folder_corpus_path)) + directory = self._sub_path + self._format_corpus_path(folder_corpus_path) if directory.startswith('/'): directory = directory[1:] @@ -157,7 +172,13 @@ async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: name = path['name'] # type: str name_without_sub_path = name[len(self._sub_path) + 1:] if self._sub_path and name.startswith(self._sub_path) else name - results.append(self._format_corpus_path(name_without_sub_path)) + filepath = self._format_corpus_path(name_without_sub_path) + results.append(filepath) + + lastTimeString = path.get('lastModified') + if lastTimeString is not None and self._is_cache_enabled: + self._file_modified_time_cache[filepath] = dateutil.parser.parse(lastTimeString) + return results return None diff --git a/objectModel/Python/cdm/storage/base.py b/objectModel/Python/cdm/storage/base.py index 6f6fe3390f..15bf809c3a 100644 --- a/objectModel/Python/cdm/storage/base.py +++ b/objectModel/Python/cdm/storage/base.py @@ -1,51 +1,87 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. -import abc import datetime -from typing import Any, List, Optional +from .cache_context import StorageAdapterCacheContext +from typing import List, Optional - -class StorageAdapterBase(abc.ABC): +class StorageAdapterBase: """Abstract base class of all storage adapters that can read and write documents to and from data sources. It offers the flexibility to interact with data from multiple sources, and can be used to create new custom storage adapters. """ - @abc.abstractmethod + def __init__(self): + self.location_hint = None # type: Optional[str] + + # --- internal --- + self._active_cache_context = set() # type: Set[CacheContext] + + @property + def location_hint(self) -> str: + return self._location_hint + + @location_hint.setter + def location_hint(self, value: str): + self._location_hint = value + def can_read(self) -> bool: """Return true if adapter can read data from its source, false otherwise.""" + return False - @abc.abstractmethod def can_write(self) -> bool: """Return true if adapter can write data to its source, false otherwise.""" + return False - @abc.abstractmethod async def read_async(self, corpus_path: str) -> str: """Return data read from the specified document path.""" + raise NotImplementedError('Read operation not supported by this adapter') - @abc.abstractmethod async def write_async(self, corpus_path: str, data: str) -> None: """Write data to the specified document path.""" + raise NotImplementedError('Write operation not supported by this adapter') - @abc.abstractmethod def create_adapter_path(self, corpus_path: str) -> str: """Convert the corpus path to a path in domain of this adapter.""" + return corpus_path - @abc.abstractmethod def create_corpus_path(self, adapter_path: str) -> Optional[str]: """Convert the path in domain of this adapter to a corpus path.""" + return adapter_path - @abc.abstractmethod - def clear_cache(self) -> None: - """Clear the cache of files and folders (if storage adapter uses a cache).""" - - @abc.abstractmethod async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime.datetime]: """Return last modified time of specified document.""" + return datetime.datetime.now() - @abc.abstractmethod async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: """Return list of corpus paths to all files and folders under the specified corpus path to a folder. """ + return None + + def clear_cache(self) -> None: + """Clear the cache of files and folders (if storage adapter uses a cache).""" + + @property + def _is_cache_enabled(self) -> bool: + """If true inherited classes should cache and reuse file query results if they support this""" + return len(self._active_cache_context) > 0 + + def create_file_query_cache_context(self): + """Calling this function tells the adapter it may cache and reuse file query results, as opposed to + reissuing queries to the underlying file storage, which may be a costly operation. This adapter is + allowed to cache and reuse queries until the object returned by this function has its dispose + function called. If createFileQueryCacheContext is called multiple times, caching is allowed until + all objects returned have thier dispose function called. Intended usage is for callers to wrap a + set of operations that should use caching with a try-finally block and call dispose inside finally. + """ + cache_context = StorageAdapterCacheContext() + self._active_cache_context.add(cache_context) + # set the body of the dispose function here to avoid circular references + def dispose(): + self._active_cache_context.remove(cache_context) + if not self._is_cache_enabled: + self.clear_cache() + cache_context.dispose = dispose + return cache_context + diff --git a/objectModel/Python/cdm/storage/cache_context.py b/objectModel/Python/cdm/storage/cache_context.py new file mode 100644 index 0000000000..52a068e434 --- /dev/null +++ b/objectModel/Python/cdm/storage/cache_context.py @@ -0,0 +1,13 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. + +class StorageAdapterCacheContext(): + """This class is used to track requests to enable file query caching. Each time a request to enable + caching is made an instance of this class is created and added the the StorageAdapter's _activeCacheContexts + set. When dispose is called, this object is removed from that set. Whenever any items are in the adapter's + _activeCacheContexts, caching is enabled.""" + + def dispose(self) -> None: + # body defined in StorageAdatperBase to avoid circular reference + pass + diff --git a/objectModel/Python/cdm/storage/cdm_standards.py b/objectModel/Python/cdm/storage/cdm_standards.py index 7ae51cbe39..5b0d91e881 100644 --- a/objectModel/Python/cdm/storage/cdm_standards.py +++ b/objectModel/Python/cdm/storage/cdm_standards.py @@ -22,8 +22,9 @@ def __init__(self, root: str = '/logical') -> None: # root: The root path specifies either to read the standard files in logical or resolved form. """ super().__init__() + super(NetworkAdapter, self).__init__() + super(StorageAdapterBase, self).__init__() - self.location_hint = None self.root = root # --- internal --- @@ -33,9 +34,6 @@ def __init__(self, root: str = '/logical') -> None: def can_read(self) -> bool: return True - def can_write(self) -> bool: - return False - def create_adapter_path(self, corpus_path: str) -> str: return self._absolutePath + corpus_path @@ -44,15 +42,6 @@ def create_corpus_path(self, adapter_path: str) -> Optional[str]: return None return adapter_path[len(self._absolutePath):] - def clear_cache(self) -> None: - pass - - async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime.datetime]: - return datetime.datetime.now() - - async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: - return None - def fetch_config(self) -> str: result_config = {'type': self._type} @@ -89,9 +78,6 @@ def update_config(self, config) -> None: if config_json.get('root'): self.root = config_json['root'] - async def write_async(self, corpus_path: str, data: str) -> None: - raise Exception('Write operation not supported') - @property def _absolutePath(self): """The combinating of the standards endpoint and the root path.""" diff --git a/objectModel/Python/cdm/storage/github.py b/objectModel/Python/cdm/storage/github.py index 3257a7cc00..02a24e2f3b 100644 --- a/objectModel/Python/cdm/storage/github.py +++ b/objectModel/Python/cdm/storage/github.py @@ -19,22 +19,18 @@ class GithubAdapter(NetworkAdapter, StorageAdapterBase): def __init__(self) -> None: super().__init__() + super(NetworkAdapter, self).__init__() + super(StorageAdapterBase, self).__init__() warnings.warn('GithubAdapter is deprecated. Please use the CdmStandardsAdapter instead.', DeprecationWarning) - self.location_hint = None - # --- internal --- self._type = 'github' - self._is_folder = {} # type: Dict[str, bool] self._http_client = CdmHttpClient(self._raw_root) # type: CdmHttpClient def can_read(self) -> bool: return True - def can_write(self) -> bool: - return False - def create_adapter_path(self, corpus_path: str) -> str: return self._raw_root + corpus_path @@ -45,16 +41,6 @@ def create_corpus_path(self, adapter_path: str) -> Optional[str]: # Signal that we did not recognize path as one for self adapter. return None - def clear_cache(self) -> None: - self._is_folder = {} - - async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime.datetime]: - return datetime.datetime.now() - - async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: - # Implement later. - return None - def fetch_config(self) -> str: result_config = {'type': self._type} @@ -85,6 +71,3 @@ def update_config(self, config) -> None: if config_json.get('locationHint'): self.location_hint = config_json["locationHint"] - - async def write_async(self, corpus_path: str, data: str) -> None: - raise NotImplementedError() diff --git a/objectModel/Python/cdm/storage/local.py b/objectModel/Python/cdm/storage/local.py index 0a531ce843..4c81b65b7b 100644 --- a/objectModel/Python/cdm/storage/local.py +++ b/objectModel/Python/cdm/storage/local.py @@ -14,8 +14,8 @@ class LocalAdapter(StorageAdapterBase): """Local file system storage adapter""" def __init__(self, root: Optional[str] = '') -> None: - self.root = root # type: str - self.location_hint = None # type: Optional[str] + super().__init__() + self.root = root # type: str # --- internal --- self._full_root = os.path.abspath(self.root) @@ -62,9 +62,6 @@ def create_corpus_path(self, adapter_path: str) -> Optional[str]: # Signal that we did not recognize path as one for self adapter. return None - def clear_cache(self) -> None: - pass - async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime]: adapter_path = self.create_adapter_path(corpus_path) if os.path.exists(adapter_path): diff --git a/objectModel/Python/cdm/storage/network.py b/objectModel/Python/cdm/storage/network.py index 0136f27eb0..ab733ec255 100644 --- a/objectModel/Python/cdm/storage/network.py +++ b/objectModel/Python/cdm/storage/network.py @@ -22,7 +22,7 @@ class NetworkAdapter: will be used as specified in the class. """ - DEFAULT_TIMEOUT = 2000 + DEFAULT_TIMEOUT = 6000 DEFAULT_NUMBER_OF_RETRIES = 2 @@ -30,6 +30,30 @@ class NetworkAdapter: DEFAULT_SHORTEST_WAIT_TIME = 500 + @property + def timeout(self) -> int: + return self._timeout + + @timeout.setter + def timeout(self, val: int) -> None: + self._timeout = val if val is not None and val >= 0 else self.DEFAULT_TIMEOUT + + @property + def maximum_timeout(self) -> int: + return self._maximum_timeout + + @maximum_timeout.setter + def maximum_timeout(self, val: int) -> None: + self._maximum_timeout = val if val is not None and val >= 0 else self.DEFAULT_MAXIMUM_TIMEOUT + + @property + def number_of_retries(self) -> int: + return self._number_of_retries + + @number_of_retries.setter + def number_of_retries(self, val: int) -> None: + self._number_of_retries = val if val is not None and val >= 0 else self.DEFAULT_NUMBER_OF_RETRIES + def __init__(self) -> None: self.timeout = self.DEFAULT_TIMEOUT # type: int self.maximum_timeout = self.DEFAULT_MAXIMUM_TIMEOUT # type: int diff --git a/objectModel/Python/cdm/storage/remote.py b/objectModel/Python/cdm/storage/remote.py index 8b4b5e0f60..24c7e377ac 100644 --- a/objectModel/Python/cdm/storage/remote.py +++ b/objectModel/Python/cdm/storage/remote.py @@ -17,8 +17,8 @@ class RemoteAdapter(NetworkAdapter, StorageAdapterBase): def __init__(self, hosts: Optional[Dict[str, str]] = None) -> None: super().__init__() - - self.location_hint = None # type: Optional[str] + super(NetworkAdapter, self).__init__() + super(StorageAdapterBase, self).__init__() # --- internal --- self._hosts = {} # type: Dict[str, str] @@ -44,18 +44,12 @@ def hosts(self, hosts: Dict[str, str]) -> None: def can_read(self) -> bool: return True - def can_write(self) -> bool: - return False - async def read_async(self, corpus_path: str) -> str: url = self.create_adapter_path(corpus_path) request = self._set_up_cdm_request(url, {'User-Agent': 'CDM'}, 'GET') return await super()._read(request) - async def write_async(self, corpus_path: str, data: str) -> None: - raise NotImplementedError() - def create_adapter_path(self, corpus_path: str) -> str: if not corpus_path: return None @@ -89,13 +83,6 @@ def clear_cache(self) -> None: self._sources = {} self._sources_by_id = {} - async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime.datetime]: - return datetime.datetime.now() - - async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: - # TODO: implement - return None - def fetch_config(self) -> str: result_config = {'type': self._type} config_object = {} diff --git a/objectModel/Python/cdm/storage/resource.py b/objectModel/Python/cdm/storage/resource.py index fc6063761b..c8dbadb467 100644 --- a/objectModel/Python/cdm/storage/resource.py +++ b/objectModel/Python/cdm/storage/resource.py @@ -19,7 +19,7 @@ class ResourceAdapter(StorageAdapterBase): def __init__(self) -> None: """The constructor can have a specified root for resources (used by internal code mostly, but can be used for external), by default it finds resources for a wheel generated by setuptools.""" - self.location_hint = None # type: Optional[str] + super().__init__() # --- internal --- self._resources_path = os.path.abspath(RESOURCES_PATH) # type: str @@ -28,9 +28,6 @@ def __init__(self) -> None: def can_read(self) -> bool: return True - def can_write(self) -> bool: - return False - async def read_async(self, corpus_path: str) -> str: adapter_path = self._resources_path + corpus_path @@ -40,9 +37,6 @@ async def read_async(self, corpus_path: str) -> str: with open(adapter_path, 'r', encoding='utf-8') as file: return file.read() - async def write_async(self, corpus_path: str, data: str) -> None: - raise NotImplementedError() - def create_adapter_path(self, corpus_path: str) -> str: if not corpus_path: return None @@ -53,18 +47,3 @@ def create_corpus_path(self, adapter_path: str) -> Optional[str]: if not adapter_path or not adapter_path.startswith(self._ROOT): return None return adapter_path[len(self._ROOT):] - - def clear_cache(self) -> None: - pass - - async def compute_last_modified_time_async(self, corpus_path: str) -> Optional[datetime]: - return datetime.now(timezone.utc) - - async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: - return None - - def fetch_config(self) -> str: - raise NotImplementedError() - - def update_config(self, config: str) -> None: - raise NotImplementedError() diff --git a/objectModel/Python/cdm/utilities/network/cdm_http_client.py b/objectModel/Python/cdm/utilities/network/cdm_http_client.py index d25e86915f..01e49ffe6a 100644 --- a/objectModel/Python/cdm/utilities/network/cdm_http_client.py +++ b/objectModel/Python/cdm/utilities/network/cdm_http_client.py @@ -109,7 +109,7 @@ async def _send_async_helper(self, cdm_request: 'CdmHttpRequest', callback=None) raise CdmNumberOfRetriesExceededException(exception) else: if exception.args and exception.args[0].args and exception.args[0].args[0] == 'timed out': - raise CdmTimedOutException(exception) + raise CdmTimedOutException('Request timeout.') else: raise exception except Exception as exception: @@ -134,9 +134,9 @@ async def _send_async_helper(self, cdm_request: 'CdmHttpRequest', callback=None) if retry_number == 0: return None - raise CdmNumberOfRetriesExceededException + raise CdmNumberOfRetriesExceededException() - raise CdmNumberOfRetriesExceededException + raise CdmNumberOfRetriesExceededException() def _combine_urls(self, url1: str, url2: str) -> str: """ diff --git a/objectModel/Python/cdm/utilities/resolve_options.py b/objectModel/Python/cdm/utilities/resolve_options.py index 8688ee48f8..c366ed1068 100644 --- a/objectModel/Python/cdm/utilities/resolve_options.py +++ b/objectModel/Python/cdm/utilities/resolve_options.py @@ -40,6 +40,9 @@ def __init__(self, wrt_doc: Optional[Union['CdmDocumentDefinition', 'CdmObject'] # When enabled, errors regarding references that are unable to be resolved or loaded are logged as warnings instead. self.shallow_validation = None # type: Optional[bool] + # When enabled, all the imports will be loaded and the references checked otherwise will be delayed until the symbols are required. + self.strict_validation = True # type: bool + # The limit for the number of resolved attributes allowed per entity. if the number is exceeded, the resolution will fail self._resolved_attribute_limit = 4000 # type: Optional[int] diff --git a/objectModel/Python/cdm/utilities/string_utils.py b/objectModel/Python/cdm/utilities/string_utils.py index 7fa5bfc64d..1965338d23 100644 --- a/objectModel/Python/cdm/utilities/string_utils.py +++ b/objectModel/Python/cdm/utilities/string_utils.py @@ -33,3 +33,7 @@ def equals_with_ignore_case(a: str, b: str) -> bool: @staticmethod def equals_with_case(a: str, b: str) -> bool: return a == b + + @staticmethod + def is_null_or_white_space(s: str) -> bool: + return s is None or s.strip() is '' diff --git a/objectModel/Python/requirements.txt b/objectModel/Python/requirements.txt index 1795a43e81..f8fcc10a16 100644 --- a/objectModel/Python/requirements.txt +++ b/objectModel/Python/requirements.txt @@ -8,11 +8,12 @@ certifi==2019.6.16 cffi==1.12.3 chardet==3.0.4 colorama==0.4.1 -cryptography==2.7 +cryptography==2.8 idna==2.8 importlib-metadata==0.19 isort==4.3.4 lazy-object-proxy==1.3.1 +nest-asyncio==1.4.0 mccabe==0.6.1 more-itertools==7.2.0 mypy==0.720 diff --git a/objectModel/Python/setup.py b/objectModel/Python/setup.py index 29529c9d8e..4870768068 100644 --- a/objectModel/Python/setup.py +++ b/objectModel/Python/setup.py @@ -54,7 +54,7 @@ def list_files_in_folder(folders): setuptools.setup( name="commondatamodel-objectmodel", - version="1.0.9", + version="1.0.10", author="Microsoft", # author_email="author@example.com", description="Common Data Model Object Model library for Python", diff --git a/objectModel/Python/tests/cdm/projection/test_projection_exclude.py b/objectModel/Python/tests/cdm/projection/test_projection_exclude.py new file mode 100644 index 0000000000..1199b0d1ee --- /dev/null +++ b/objectModel/Python/tests/cdm/projection/test_projection_exclude.py @@ -0,0 +1,712 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. + +import os +import unittest +from typing import List + +from cdm.enums import CdmObjectType +from cdm.objectmodel import CdmCorpusDefinition, CdmFolderDefinition, CdmEntityDefinition +from cdm.storage import LocalAdapter +from cdm.utilities import ResolveOptions, AttributeResolutionDirectiveSet +from tests.cdm.projection.attribute_context_util import AttributeContextUtil +from tests.common import async_test, TestHelper, TestUtils + + +class ProjectionExcludeTest(unittest.TestCase): + """A test class for testing the ExcludeAttributes operation in a projection as well as SelectsSomeAvoidNames in a resolution guidance""" + + # All possible combinations of the different resolution directives + res_opts_combinations = [ + [], + ['referenceOnly'], + ['normalized'], + ['structured'], + ['referenceOnly', 'normalized'], + ['referenceOnly', 'structured'], + ['normalized', 'structured'], + ['referenceOnly', 'normalized', 'structured'] + ] + + # Path to foundations + foundation_json_path = 'cdm:/foundations.cdm.json' + + # The path between TestDataPath and TestName. + tests_subpath = os.path.join('Cdm', 'Projection', 'TestProjectionExclude') + + @async_test + async def test_entity_attribute_proj_using_object_model(self): + """Test for creating a projection with an ExcludeAttributes operation on an entity attribute using the object model""" + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_entity_attribute_proj_using_object_model') + corpus.storage.mount('local', LocalAdapter(TestHelper.get_actual_output_folder_path(self.tests_subpath, 'test_entity_attribute_proj_using_object_model'))) + local_root = corpus.storage.fetch_root_folder('local') + + # Create an entity + entity = self._create_entity(corpus, local_root) + + # Create a projection + projection = self._create_projection(corpus, local_root) + + # Create an ExcludeAttributes operation + exclude_attrs_op = corpus.make_object(CdmObjectType.OPERATION_EXCLUDE_ATTRIBUTES_DEF) + exclude_attrs_op.exclude_attributes.append('id') + exclude_attrs_op.exclude_attributes.append('date') + projection.operations.append(exclude_attrs_op) + + # Create an entity reference to hold this projection + projection_entity_ref = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_entity_ref.explicit_reference = projection + + # Create an entity attribute that contains this projection and add this to the entity + entity_attribute = corpus.make_object(CdmObjectType.ENTITY_ATTRIBUTE_DEF, 'TestEntityAttribute') + entity_attribute.entity = projection_entity_ref + entity.attributes.append(entity_attribute) + + # Resolve the entity + resolved_entity = await entity.create_resolved_entity_async('Resolved_{}.cdm.json'.format(entity.entity_name), None, local_root) + + # Verify correctness of the resolved attributes after running the ExcludeAttributes operation + # Original set of attributes: ['id', 'name', 'value', 'date'] + # Excluded attributes: ['id', 'date'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('value', resolved_entity.attributes[1].name) + + @async_test + async def test_entity_proj_using_object_model(self): + """Test for creating a projection with an ExcludeAttributes operation on an entity definition using the object model""" + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_entity_proj_using_object_model') + corpus.storage.mount('local', LocalAdapter(TestHelper.get_actual_output_folder_path(self.tests_subpath, 'test_entity_proj_using_object_model'))) + local_root = corpus.storage.fetch_root_folder('local') + + # Create an entity + entity = self._create_entity(corpus, local_root) + + # Create a projection + projection = self._create_projection(corpus, local_root) + + # Create an ExcludeAttributes operation + exclude_attrs_op = corpus.make_object(CdmObjectType.OPERATION_EXCLUDE_ATTRIBUTES_DEF) + exclude_attrs_op.exclude_attributes.append('name') + exclude_attrs_op.exclude_attributes.append('value') + projection.operations.append(exclude_attrs_op) + + # Create an entity reference to hold this projection + projection_entity_ref = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_entity_ref.explicit_reference = projection + + # Set the entity's ExtendEntity to be the projection + entity.extends_entity = projection_entity_ref + + # Resolve the entity + resolved_entity = await entity.create_resolved_entity_async('Resolved_{}.cdm.json'.format(entity.entity_name), None, local_root) + + # Verify correctness of the resolved attributes after running the ExcludeAttributes operation + # Original set of attributes: ['id', 'name', 'value', 'date'] + # Excluded attributes: ['name', 'value'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('id', resolved_entity.attributes[0].name) + self.assertEqual('date', resolved_entity.attributes[1].name) + + @async_test + async def test_nested_proj_using_object_model(self): + """Test for creating nested projections with ExcludeAttributes operations using the object model""" + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_nested_proj_using_object_model') + corpus.storage.mount('local', LocalAdapter(TestHelper.get_actual_output_folder_path(self.tests_subpath, 'test_nested_proj_using_object_model'))) + local_root = corpus.storage.fetch_root_folder('local') + + # Create an entity + entity = self._create_entity(corpus, local_root) + + # Create a projection + projection = self._create_projection(corpus, local_root) + + # Create an ExcludeAttributes operation + exclude_attrs_op = corpus.make_object(CdmObjectType.OPERATION_EXCLUDE_ATTRIBUTES_DEF) + exclude_attrs_op.exclude_attributes.append('id') + exclude_attrs_op.exclude_attributes.append('date') + projection.operations.append(exclude_attrs_op) + + # Create an entity reference to hold this projection + projection_entity_ref = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_entity_ref.explicit_reference = projection + + # Create another projection that uses the previous projection as its source + projection2 = corpus.make_object(CdmObjectType.PROJECTION_DEF) + projection2.source = projection_entity_ref + + # Create an ExcludeAttributes operation + exclude_attrs_op2 = corpus.make_object(CdmObjectType.OPERATION_EXCLUDE_ATTRIBUTES_DEF) + exclude_attrs_op2.exclude_attributes.append('value') + projection2.operations.append(exclude_attrs_op2) + + # Create an entity reference to hold this projection + projection_entity_ref2 = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_entity_ref2.explicit_reference = projection2 + + # Create an entity attribute that contains this projection and add this to the entity + entity_attribute = corpus.make_object(CdmObjectType.ENTITY_ATTRIBUTE_DEF, 'TestEntityAttribute') + entity_attribute.entity = projection_entity_ref2 + entity.attributes.append(entity_attribute) + + # Resolve the entity + resolved_entity = await entity.create_resolved_entity_async('Resolved_{}.cdm.json'.format(entity.entity_name), None, local_root) + + # Verify correctness of the resolved attributes after running the ExcludeAttributes operations + # Original set of attributes: ['id', 'name', 'value', 'date'] + # Excluded attributes: ['id', 'date'], ['value'] + self.assertEqual(1, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + + @async_test + async def test_conditional_proj_using_object_model(self): + """Test for creating a projection with an ExcludeAttributes operation and a condition using the object model""" + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_conditional_proj_using_object_model') + corpus.storage.mount('local', LocalAdapter(TestHelper.get_actual_output_folder_path(self.tests_subpath, 'test_conditional_proj_using_object_model'))) + local_root = corpus.storage.fetch_root_folder('local') + + # Create an entity + entity = self._create_entity(corpus, local_root) + + # Create a projection with a condition that states the operation should only execute when the resolution directive is 'referenceOnly' + projection = self._create_projection(corpus, local_root) + projection.condition = 'referenceOnly==True' + + # Create an ExcludeAttributes operation + exclude_attrs_op = corpus.make_object(CdmObjectType.OPERATION_EXCLUDE_ATTRIBUTES_DEF) + exclude_attrs_op.exclude_attributes.append('id') + exclude_attrs_op.exclude_attributes.append('date') + projection.operations.append(exclude_attrs_op) + + # Create an entity reference to hold this projection + projection_entity_ref = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_entity_ref.explicit_reference = projection + + # Create an entity attribute that contains this projection and add this to the entity + entity_attribute = corpus.make_object(CdmObjectType.ENTITY_ATTRIBUTE_DEF, 'TestEntityAttribute') + entity_attribute.entity = projection_entity_ref + entity.attributes.append(entity_attribute) + + # Create resolution options with the 'referenceOnly' directive + res_opt = ResolveOptions(entity.in_document) + res_opt.directives = AttributeResolutionDirectiveSet(set(['referenceOnly'])) + + # Resolve the entity with 'referenceOnly' + resolved_entity_with_reference_only = await entity.create_resolved_entity_async('Resolved_{}.cdm.json'.format(entity.entity_name), res_opt, local_root) + + # Verify correctness of the resolved attributes after running the ExcludeAttributes operation + # Original set of attributes: ['id', 'name', 'value', 'date'] + # Excluded attributes: ['id', 'date'] + self.assertEqual(2, len(resolved_entity_with_reference_only.attributes)) + self.assertEqual('name', resolved_entity_with_reference_only.attributes[0].name) + self.assertEqual('value', resolved_entity_with_reference_only.attributes[1].name) + + # Now resolve the entity with the 'structured' directive + res_opt.directives = AttributeResolutionDirectiveSet(set(['structured'])) + resolved_entity_with_structured = await entity.create_resolved_entity_async('Resolved_{}.cdm.json'.format(entity.entity_name), res_opt, local_root) + + # Verify correctness of the resolved attributes after running the ExcludeAttributes operation + # Original set of attributes: ['id', 'name', 'value', 'date'] + # Excluded attributes: none, condition was false + self.assertEqual(4, len(resolved_entity_with_structured.attributes)) + self.assertEqual('id', resolved_entity_with_structured.attributes[0].name) + self.assertEqual('name', resolved_entity_with_structured.attributes[1].name) + self.assertEqual('value', resolved_entity_with_structured.attributes[2].name) + self.assertEqual('date', resolved_entity_with_structured.attributes[3].name) + + @async_test + async def test_exclude_attributes(self): + """ExcludeAttributes on an entity attribute""" + test_name = 'test_exclude_attributes' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + @async_test + async def test_SSAN(self): + """SelectsSomeAvoidNames on an entity attribute""" + test_name = 'test_SSAN' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['PersonInfoName', 'PersonInfoAge', 'PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + # Excluded attributes: ['PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('PersonInfoName', resolved_entity.attributes[0].name) + self.assertEqual('PersonInfoAge', resolved_entity.attributes[1].name) + + @async_test + async def test_SSAN_rename(self): + """SelectsSomeAvoidNames on an entity attribute that has renameFormat = '{m}'""" + test_name = 'test_SSAN_rename' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + @async_test + async def test_single_nested_proj(self): + """A nested ExcludeAttributes operation in a single projection""" + test_name = 'test_single_nested_proj' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + @async_test + async def test_nested_proj(self): + """Nested projections with ExcludeAttributes""" + test_name = 'test_nested_proj' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'], ['age'] + self.assertEqual(1, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + + @async_test + async def test_multiple_exclude(self): + """Multiple ExcludeAttributes in a single projection""" + test_name = 'test_multiple_exclude' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['name', 'age', 'address'], ['address', 'email'] + self.assertEqual(4, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + self.assertEqual('phoneNumber', resolved_entity.attributes[2].name) + self.assertEqual('email', resolved_entity.attributes[3].name) + + @async_test + async def test_extends_entity_proj(self): + """ExcludeAttributes on an entity definition""" + test_name = 'test_extends_entity_proj' + entity_name = 'Child' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['phoneNumber', 'email'] + self.assertEqual(3, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + self.assertEqual('address', resolved_entity.attributes[2].name) + + @async_test + async def test_extends_entity(self): + """SelectsSomeAvoidNames on an entity definition""" + test_name = 'test_extends_entity' + entity_name = 'Child' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['phoneNumber', 'email'] + self.assertEqual(3, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + self.assertEqual('address', resolved_entity.attributes[2].name) + + @async_test + async def test_polymorphic_proj(self): + """ExcludeAttributes on a polymorphic source""" + test_name = 'test_polymorphic_proj' + entity_name = 'BusinessPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['emailId', 'address', 'isPrimary', 'phoneId', 'number', 'socialId', 'account'] + # Excluded attributes: ['socialId', 'account'] + self.assertEqual(5, len(resolved_entity.attributes)) + self.assertEqual('emailId', resolved_entity.attributes[0].name) + self.assertEqual('address', resolved_entity.attributes[1].name) + self.assertEqual('isPrimary', resolved_entity.attributes[2].name) + self.assertEqual('phoneId', resolved_entity.attributes[3].name) + self.assertEqual('number', resolved_entity.attributes[4].name) + + @async_test + async def test_polymorphic(self): + """SelectsSomeAvoidNames on a polymorphic source""" + test_name = 'test_polymorphic' + entity_name = 'BusinessPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['emailId', 'address', 'isPrimary', 'phoneId', 'number', 'socialId', 'account'] + # Excluded attributes: ['socialId', 'account'] + self.assertEqual(5, len(resolved_entity.attributes)) + self.assertEqual('emailId', resolved_entity.attributes[0].name) + self.assertEqual('address', resolved_entity.attributes[1].name) + self.assertEqual('isPrimary', resolved_entity.attributes[2].name) + self.assertEqual('phoneId', resolved_entity.attributes[3].name) + self.assertEqual('number', resolved_entity.attributes[4].name) + + @async_test + async def test_array_source_proj(self): + """ExcludeAttributes on an array source""" + test_name = 'test_array_source_proj' + entity_name = 'FriendGroup' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['personCount', 'name1', 'age1', 'address1', 'phoneNumber1', 'email1', ..., 'email3'] (16 total) + # Excluded attributes: ['age1', 'age2', 'age3'] + self.assertEqual(13, len(resolved_entity.attributes)) + self.assertEqual('personCount', resolved_entity.attributes[0].name) + self.assertEqual('name1', resolved_entity.attributes[1].name) + self.assertEqual('address1', resolved_entity.attributes[2].name) + self.assertEqual('phoneNumber1', resolved_entity.attributes[3].name) + self.assertEqual('email1', resolved_entity.attributes[4].name) + self.assertEqual('name2', resolved_entity.attributes[5].name) + self.assertEqual('address2', resolved_entity.attributes[6].name) + self.assertEqual('phoneNumber2', resolved_entity.attributes[7].name) + self.assertEqual('email2', resolved_entity.attributes[8].name) + self.assertEqual('name3', resolved_entity.attributes[9].name) + self.assertEqual('address3', resolved_entity.attributes[10].name) + self.assertEqual('phoneNumber3', resolved_entity.attributes[11].name) + self.assertEqual('email3', resolved_entity.attributes[12].name) + + @async_test + async def test_array_source(self): + """SelectsSomeAvoidNames on an array source""" + test_name = 'test_array_source' + entity_name = 'FriendGroup' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['GroupOfPeoplePersonCount', 'GroupOfPeopleName1', 'GroupOfPeopleAge1', 'GroupOfPeopleAddress1', + # 'GroupOfPeoplePhoneNumber1', 'GroupOfPeopleEmail1', ..., 'GroupOfPeopleEmail3'] (16 total) + # Excluded attributes: ['GroupOfPeopleAge1', 'GroupOfPeopleAge2', 'GroupOfPeopleAge3'] + self.assertEqual(13, len(resolved_entity.attributes)) + self.assertEqual('GroupOfPeoplePersonCount', resolved_entity.attributes[0].name) + self.assertEqual('GroupOfPeopleName1', resolved_entity.attributes[1].name) + self.assertEqual('GroupOfPeopleAddress1', resolved_entity.attributes[2].name) + self.assertEqual('GroupOfPeoplePhoneNumber1', resolved_entity.attributes[3].name) + self.assertEqual('GroupOfPeopleEmail1', resolved_entity.attributes[4].name) + self.assertEqual('GroupOfPeopleName2', resolved_entity.attributes[5].name) + self.assertEqual('GroupOfPeopleAddress2', resolved_entity.attributes[6].name) + self.assertEqual('GroupOfPeoplePhoneNumber2', resolved_entity.attributes[7].name) + self.assertEqual('GroupOfPeopleEmail2', resolved_entity.attributes[8].name) + self.assertEqual('GroupOfPeopleName3', resolved_entity.attributes[9].name) + self.assertEqual('GroupOfPeopleAddress3', resolved_entity.attributes[10].name) + self.assertEqual('GroupOfPeoplePhoneNumber3', resolved_entity.attributes[11].name) + self.assertEqual('GroupOfPeopleEmail3', resolved_entity.attributes[12].name) + + @async_test + async def test_array_source_rename(self): + """SelectsSomeAvoidNames on an array source that has renameFormat = '{m}'""" + test_name = 'test_array_source_rename' + entity_name = 'FriendGroup' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['personCount', 'name1', 'age1', 'address1', 'phoneNumber1', 'email1', ..., 'email3'] (16 total) + # Excluded attributes: ['age1', 'age2', 'age3'] + self.assertEqual(13, len(resolved_entity.attributes)) + self.assertEqual('personCount', resolved_entity.attributes[0].name) + self.assertEqual('name1', resolved_entity.attributes[1].name) + self.assertEqual('address1', resolved_entity.attributes[2].name) + self.assertEqual('phoneNumber1', resolved_entity.attributes[3].name) + self.assertEqual('email1', resolved_entity.attributes[4].name) + self.assertEqual('name2', resolved_entity.attributes[5].name) + self.assertEqual('address2', resolved_entity.attributes[6].name) + self.assertEqual('phoneNumber2', resolved_entity.attributes[7].name) + self.assertEqual('email2', resolved_entity.attributes[8].name) + self.assertEqual('name3', resolved_entity.attributes[9].name) + self.assertEqual('address3', resolved_entity.attributes[10].name) + self.assertEqual('phoneNumber3', resolved_entity.attributes[11].name) + self.assertEqual('email3', resolved_entity.attributes[12].name) + + @async_test + async def test_conditional_proj(self): + """ExcludeAttributes with a condition""" + test_name = 'test_conditional_proj' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, ['referenceOnly']) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + resolved_entity2 = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: none, condition was false + self.assertEqual(5, len(resolved_entity2.attributes)) + self.assertEqual('name', resolved_entity2.attributes[0].name) + self.assertEqual('age', resolved_entity2.attributes[1].name) + self.assertEqual('address', resolved_entity2.attributes[2].name) + self.assertEqual('phoneNumber', resolved_entity2.attributes[3].name) + self.assertEqual('email', resolved_entity2.attributes[4].name) + + @async_test + async def test_empty_exclude(self): + """ExcludeAttributes with an empty exclude attributes list""" + test_name = 'test_empty_exclude' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: [] + self.assertEqual(5, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + self.assertEqual('address', resolved_entity.attributes[2].name) + self.assertEqual('phoneNumber', resolved_entity.attributes[3].name) + self.assertEqual('email', resolved_entity.attributes[4].name) + + @async_test + async def test_group_proj(self): + """ExcludeAttributes on an entity with an attribute group""" + test_name = 'test_group_proj' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + @async_test + async def test_group(self): + """SelectsSomeAvoidNames on an entity with an attribute group""" + test_name = 'test_group' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['PersonInfoName', 'PersonInfoAge', 'PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + # Excluded attributes: ['PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('PersonInfoName', resolved_entity.attributes[0].name) + self.assertEqual('PersonInfoAge', resolved_entity.attributes[1].name) + + @async_test + async def test_group_rename(self): + """SelectsSomeAvoidNames on an entity with an attribute group that has renameFormat = '{m}'""" + test_name = 'test_group_rename' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, []) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + # Excluded attributes: ['address', 'phoneNumber', 'email'] + self.assertEqual(2, len(resolved_entity.attributes)) + self.assertEqual('name', resolved_entity.attributes[0].name) + self.assertEqual('age', resolved_entity.attributes[1].name) + + @async_test + async def test_EA_name_proj(self): + """ + ExcludeAttributes with an entity attribute name on an inline entity reference that contains entity attributes + This is testing that, for the case of the structured directive, we can filter using the name of an entity attribute + in the inline entity reference to exclude the entire entity attribute group + """ + test_name = 'test_EA_name_proj' + entity_name = 'NewPerson' + corpus = self._get_corpus(test_name) + + for res_opt in self.res_opts_combinations: + await self._load_entity_for_resolution_option_and_save(corpus, test_name, entity_name, res_opt) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, ['structured']) + + # Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email', 'title', 'company', 'tenure'] + # Excluded attributes: ['OccupationInfo'] (name of entity attribute that contains 'title', 'company', 'tenure') + self.assertEqual(1, len(resolved_entity.attributes)) # attribute group created because of structured directive + att_group = resolved_entity.attributes[0].explicit_reference + self.assertEqual(5, len(att_group.members)) + self.assertEqual('name', att_group.members[0].name) + self.assertEqual('age', att_group.members[1].name) + self.assertEqual('address', att_group.members[2].name) + self.assertEqual('phoneNumber', att_group.members[3].name) + self.assertEqual('email', att_group.members[4].name) + + def _get_corpus(self, test_name: str) -> 'CdmCorpusDefinition': + """Creates a corpus""" + corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + return corpus + + def _create_entity(self, corpus: 'CdmCorpusDefinition', local_root: 'CdmFolderDefinition') -> 'CdmEntityDefinition': + """Creates an entity""" + entity_name = 'TestEntity' + entity = corpus.make_object(CdmObjectType.ENTITY_DEF, entity_name) + + entity_doc = corpus.make_object(CdmObjectType.DOCUMENT_DEF, '{}.cdm.json'.format(entity_name), False) + entity_doc.imports.append(self.foundation_json_path) + entity_doc.definitions.append(entity) + local_root.documents.append(entity_doc, entity_doc.name) + + return entity + + def _create_source_entity(self, corpus: 'CdmCorpusDefinition', local_root: 'CdmFolderDefinition') -> 'CdmEntityDefinition': + """Creates a source entity for a projection""" + entity_name = 'SourceEntity' + entity = corpus.make_object(CdmObjectType.ENTITY_DEF, entity_name) + + attribute_name1 = 'id' + attribute1 = corpus.make_object(CdmObjectType.TYPE_ATTRIBUTE_DEF, attribute_name1) + attribute1.date_type = corpus.make_ref(CdmObjectType.DATA_TYPE_REF, 'string', True) + entity.attributes.append(attribute1) + + attributeName2 = 'name' + attribute2 = corpus.make_object(CdmObjectType.TYPE_ATTRIBUTE_DEF, attributeName2) + attribute2.date_type = corpus.make_ref(CdmObjectType.DATA_TYPE_REF, 'string', True) + entity.attributes.append(attribute2) + + attributeName3 = 'value' + attribute3 = corpus.make_object(CdmObjectType.TYPE_ATTRIBUTE_DEF, attributeName3) + attribute3.date_type = corpus.make_ref(CdmObjectType.DATA_TYPE_REF, 'integer', True) + entity.attributes.append(attribute3) + + attributeName4 = 'date' + attribute4 = corpus.make_object(CdmObjectType.TYPE_ATTRIBUTE_DEF, attributeName4) + attribute4.date_type = corpus.make_ref(CdmObjectType.DATA_TYPE_REF, 'date', True) + entity.attributes.append(attribute4) + + entity_doc = corpus.make_object(CdmObjectType.DOCUMENT_DEF, '{}.cdm.json'.format(entity_name), False) + entity_doc.imports.append(self.foundation_json_path) + entity_doc.definitions.append(entity) + local_root.documents.append(entity_doc, entity_doc.name) + + return entity + + def _create_projection(self, corpus: 'CdmCorpusDefinition', local_root: 'CdmFolderDefinition') -> 'CdmProjection': + """Creates a projection""" + # Create an entity reference to use as the source of the projection + projection_source = corpus.make_object(CdmObjectType.ENTITY_REF, None) + projection_source.explicit_reference = self._create_source_entity(corpus, local_root) + + # Create the projection + projection = corpus.make_object(CdmObjectType.PROJECTION_DEF) + projection.source = projection_source + + return projection + + async def _load_entity_for_resolution_option_and_save(self, corpus: 'CdmCorpusDefinition', test_name: str, entity_name: str, res_opts: List[str]) -> None: + """Loads an entity, resolves it, and then validates the generated attribute contexts""" + expected_output_path = TestHelper.get_expected_output_folder_path(self.tests_subpath, test_name) + file_name_suffix = TestUtils.get_resolution_option_name_suffix(res_opts) + + entity = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name)) + resolved_entity = await TestUtils._get_resolved_entity(corpus, entity, res_opts, True) + AttributeContextUtil.validate_attribute_context(self, corpus, expected_output_path, '{}{}'.format(entity_name, file_name_suffix), resolved_entity) diff --git a/objectModel/Python/tests/cdm/projection/test_projection_fk.py b/objectModel/Python/tests/cdm/projection/test_projection_fk.py index 3c8f92b9a5..a1011cfbfb 100644 --- a/objectModel/Python/tests/cdm/projection/test_projection_fk.py +++ b/objectModel/Python/tests/cdm/projection/test_projection_fk.py @@ -8,7 +8,7 @@ from cdm.objectmodel import CdmCorpusDefinition, CdmManifestDefinition, CdmEntityDefinition from cdm.utilities import ResolveOptions, AttributeResolutionDirectiveSet from tests.cdm.projection.attribute_context_util import AttributeContextUtil -from tests.common import async_test, TestHelper +from tests.common import async_test, TestHelper, TestUtils class ProjectionFKTest(unittest.TestCase): @@ -161,7 +161,7 @@ async def _load_entity_for_resolution_option_and_save(self, test_name: str, enti manifest = await corpus.fetch_object_async('local:/default.manifest.cdm.json') expected_output_path = TestHelper.get_expected_output_folder_path(self.tests_subpath, test_name) - file_name_suffix = self._get_resolution_option_name_suffix(res_opts) + file_name_suffix = TestUtils.get_resolution_option_name_suffix(res_opts) ent_sales_foreign_key_projection = await corpus.fetch_object_async('local:/{}.cdm.json/{}'.format(entity_name, entity_name), manifest) self.assertIsNotNone(ent_sales_foreign_key_projection) @@ -169,17 +169,6 @@ async def _load_entity_for_resolution_option_and_save(self, test_name: str, enti self.assertIsNotNone(resolved_sales_foreign_key_projection) AttributeContextUtil.validate_attribute_context(self, corpus, expected_output_path, '{}{}'.format(entity_name, file_name_suffix), resolved_sales_foreign_key_projection) - def _get_resolution_option_name_suffix(self, resolution_options: List[str]) -> str: - file_name_prefix = '' - - for i in range(len(resolution_options)): - file_name_prefix = '{}_{}'.format(file_name_prefix, resolution_options[i]) - - if not file_name_prefix: - file_name_prefix = '_default' - - return file_name_prefix - async def _save_resolved( self, corpus: 'CdmCorpusDefinition', @@ -192,7 +181,7 @@ async def _save_resolved( for i in range(len(resolution_options)): ro_hash_set.add(resolution_options[i]) - file_name_suffix = self._get_resolution_option_name_suffix(resolution_options) + file_name_suffix = TestUtils.get_resolution_option_name_suffix(resolution_options) resolved_entity_name = 'Resolved_{}{}.cdm.json'.format(input_entity.entity_name, file_name_suffix) diff --git a/objectModel/Python/tests/cdm/relationship/test_calculate_relationship.py b/objectModel/Python/tests/cdm/relationship/test_calculate_relationship.py index a79e7ac69d..8e9ce7d24a 100644 --- a/objectModel/Python/tests/cdm/relationship/test_calculate_relationship.py +++ b/objectModel/Python/tests/cdm/relationship/test_calculate_relationship.py @@ -110,7 +110,8 @@ def _get_relationship_strings(self, relationships: 'CdmCollection[CdmE2ERelation """Get a string version of the relationship collection""" bldr = '' for rel in relationships: - bldr += '{}|{}|{}|{}|{}'.format(rel.relationship_name, rel.to_entity, rel.to_entity_attribute, rel.from_entity, rel.from_entity_attribute) + bldr += '{}|{}|{}|{}|{}'.format(rel.relationship_name if rel.relationship_name else '', rel.to_entity, + rel.to_entity_attribute, rel.from_entity, rel.from_entity_attribute) bldr += '\n' return bldr @@ -156,4 +157,3 @@ def _print_relationship(self, relationship: 'CdmE2ERelationship') -> str: def _get_attribute_context_string(self, resolved_entity: 'CdmEntityDefinition', entity_name: str, actual_output_folder: str) -> str: """Check the attribute context for these test scenarios""" return (AttributeContextUtil()).get_attribute_context_strings(resolved_entity, resolved_entity.attribute_context) - diff --git a/objectModel/Python/tests/cdm/relationship/test_relationship.py b/objectModel/Python/tests/cdm/relationship/test_relationship.py index ea9c815e4b..51ead117cb 100644 --- a/objectModel/Python/tests/cdm/relationship/test_relationship.py +++ b/objectModel/Python/tests/cdm/relationship/test_relationship.py @@ -12,7 +12,8 @@ def match_relationship(rel1, rel2): return rel1.get('fromEntity') == rel2.from_entity and rel1.get('fromEntityAttribute') == rel2.from_entity_attribute \ - and rel1.get('toEntity') == rel2.to_entity and rel1.get('toEntityAttribute') == rel2.to_entity_attribute + and rel1.get('toEntity') == rel2.to_entity and rel1.get('toEntityAttribute') == rel2.to_entity_attribute \ + and ('name' in rel1 and (rel1.get('name') == rel2.relationship_name) or (not rel1.get('name') and not rel2.relationship_name)) class RelationshipTest(unittest.TestCase): diff --git a/objectModel/Python/tests/cdm/resolution/test_entity_resolution.py b/objectModel/Python/tests/cdm/resolution/test_entity_resolution.py index cd760a23c9..6394e358b8 100644 --- a/objectModel/Python/tests/cdm/resolution/test_entity_resolution.py +++ b/objectModel/Python/tests/cdm/resolution/test_entity_resolution.py @@ -52,9 +52,9 @@ async def test_resolved_e2e(self): async def test_resolved_knowledge_graph(self): await self.resolve_save_debugging_file_and_assert('test_resolved_knowledge_graph', 'KnowledgeGraph') - @async_test - async def test_resolved_mini_dyn(self): - await self.resolve_save_debugging_file_and_assert('test_resolved_mini_dyn', 'MiniDyn') + # @async_test + # async def test_resolved_mini_dyn(self): + # await self.resolve_save_debugging_file_and_assert('test_resolved_mini_dyn', 'MiniDyn') @async_test async def test_resolved_overrides(self): @@ -218,8 +218,11 @@ async def seek_entities(f: 'CdmManifestDefinition'): current_file = ent corpus_path = corpus.storage.create_absolute_corpus_path(ent.entity_path, current_file) - new_ent = await corpus.fetch_object_async(corpus_path) - res_opt = ResolveOptions(wrt_doc=new_ent.in_document, directives=directives) + res_opt = ResolveOptions() + res_opt.strict_validation = True + new_ent = await corpus.fetch_object_async(corpus_path, res_opt=res_opt) + res_opt.wrt_doc = new_ent.in_document + res_opt.directives = directives res_ent = ResolvedEntity(res_opt, new_ent) res_ent.spew(res_opt, spew, ' ', True) diff --git a/objectModel/Python/tests/cdm/test_corpus.py b/objectModel/Python/tests/cdm/test_corpus.py index 89b0aa11bc..0f58fb6713 100644 --- a/objectModel/Python/tests/cdm/test_corpus.py +++ b/objectModel/Python/tests/cdm/test_corpus.py @@ -34,4 +34,53 @@ async def test_compute_last_modified_time_async(self): def callback(status_level: CdmStatusLevel, message: str): self.fail(message) corpus.set_event_callback(callback, CdmStatusLevel.ERROR) - await corpus._compute_last_modified_time_async('local:/default.manifest.cdm.json') \ No newline at end of file + await corpus._compute_last_modified_time_async('local:/default.manifest.cdm.json') + + @async_test + async def test_strict_validation_off(self): + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_strict_validation') # type: CdmCorpusDefinition + def callback(status_level: CdmStatusLevel, message: str): + # when the strict validation is disabled, there should be no reference validation. + # no error should be logged. + self.fail(message) + corpus.set_event_callback(callback, CdmStatusLevel.WARNING) + + # load with strict validation disabled. + res_opt = ResolveOptions() + res_opt.strict_validation = False + await corpus.fetch_object_async('local:/doc.cdm.json', res_opt=res_opt) + + @async_test + async def test_strict_validation_on(self): + error_count = 0 + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_strict_validation') + def callback(status_level: CdmStatusLevel, message: str): + nonlocal error_count + if message.index('Unable to resolve the reference') != -1: + error_count += 1 + else: + self.fail(message) + corpus.set_event_callback(callback, CdmStatusLevel.ERROR) + + # load with strict validation. + res_opt = ResolveOptions() + res_opt.strict_validation = True + await corpus.fetch_object_async('local:/doc.cdm.json', res_opt=res_opt) + self.assertEqual(1, error_count) + + error_count = 0 + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_strict_validation') + def callback1(status_level: CdmStatusLevel, message: str): + nonlocal error_count + if status_level == CdmStatusLevel.WARNING and message.index('Unable to resolve the reference') != -1: + error_count += 1 + else: + self.fail(message) + corpus.set_event_callback(callback1, CdmStatusLevel.WARNING) + + # load with strict validation and shallow validation. + res_opt = ResolveOptions() + res_opt.strict_validation = True + res_opt.shallow_validation = True + await corpus.fetch_object_async('local:/doc.cdm.json', res_opt=res_opt) + self.assertEqual(1, error_count) diff --git a/objectModel/Python/tests/cdm/test_document_definition.py b/objectModel/Python/tests/cdm/test_document_definition.py index 0cce67b80e..8e5082fac5 100644 --- a/objectModel/Python/tests/cdm/test_document_definition.py +++ b/objectModel/Python/tests/cdm/test_document_definition.py @@ -32,8 +32,8 @@ async def test_circular_import_with_moniker(self): doc_c.imports.append('B.cdm.json') # forces doc_b to be indexed first. - await doc_b._index_if_needed(ResolveOptions()) - await doc_a._index_if_needed(ResolveOptions()) + await doc_b._index_if_needed(ResolveOptions(), True) + await doc_a._index_if_needed(ResolveOptions(), True) # should contain A, B and C. self.assertEqual(3, len(doc_a._import_priorities.import_priority)) @@ -68,7 +68,7 @@ async def test_deeper_circular_import_with_moniker(self): doc_d.imports.append('C.cdm.json') # _index_if_needed will internally call prioritizeimports on every document. - await doc_a._index_if_needed(ResolveOptions()) + await doc_a._index_if_needed(ResolveOptions(), True) self.assertEqual(4, len(doc_a._import_priorities.import_priority)) @@ -76,14 +76,14 @@ async def test_deeper_circular_import_with_moniker(self): self._mark_documents_to_index(folder.documents) # forces doc_c to be indexed first, so the priorityList will be read from the cache this time. - await doc_c._index_if_needed(ResolveOptions()) - await doc_a._index_if_needed(ResolveOptions()) + await doc_c._index_if_needed(ResolveOptions(), True) + await doc_a._index_if_needed(ResolveOptions(), True) self.assertEqual(4, len(doc_a._import_priorities.import_priority)) # indexes the rest of the documents. - await doc_b._index_if_needed(ResolveOptions()) - await doc_d._index_if_needed(ResolveOptions()) + await doc_b._index_if_needed(ResolveOptions(), True) + await doc_d._index_if_needed(ResolveOptions(), True) self.assertFalse(doc_a._import_priorities.has_circular_import) self.assertFalse(doc_b._import_priorities.has_circular_import) @@ -109,8 +109,8 @@ async def test_monikered_import_is_not_added(self): folder.documents.append(doc_c) # forces doc_b to be indexed first, so the priority_list will be read from the cache this time. - await doc_b._index_if_needed(ResolveOptions()) - await doc_a._index_if_needed(ResolveOptions()) + await doc_b._index_if_needed(ResolveOptions(), True) + await doc_a._index_if_needed(ResolveOptions(), True) # should only contain doc_a and doc_c, doc_b should be excluded. self.assertEqual(2, len(doc_a._import_priorities.import_priority)) diff --git a/objectModel/Python/tests/cdm/test_imports.py b/objectModel/Python/tests/cdm/test_imports.py index 0a716582dc..bcfc478231 100644 --- a/objectModel/Python/tests/cdm/test_imports.py +++ b/objectModel/Python/tests/cdm/test_imports.py @@ -4,6 +4,7 @@ import os import unittest +from cdm.utilities import ResolveOptions from cdm.storage import LocalAdapter from tests.common import async_test, TestHelper @@ -17,8 +18,10 @@ async def test_entity_with_missing_import(self): """The path between TestDataPath and TestName.""" test_name = 'TestEntityWithMissingImport' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True - doc = await corpus.fetch_object_async('local:/missingImport.cdm.json') + doc = await corpus.fetch_object_async('local:/missingImport.cdm.json', res_opt=res_opt) self.assertIsNotNone(doc) self.assertEqual(1, len(doc.imports)) self.assertEqual('missing.cdm.json', doc.imports[0].corpus_path) @@ -28,8 +31,10 @@ async def test_entity_with_missing_import(self): async def test_entity_with_missing_nested_imports_async(self): test_name = 'TestEntityWithMissingNestedImportsAsync' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True - doc = await corpus.fetch_object_async('local:/missingNestedImport.cdm.json') + doc = await corpus.fetch_object_async('local:/missingNestedImport.cdm.json', res_opt=res_opt) self.assertIsNotNone(doc) self.assertEqual(1, len(doc.imports)) first_import = doc.imports[0]._document @@ -42,8 +47,10 @@ async def test_entity_with_missing_nested_imports_async(self): async def test_entity_with_same_imports_async(self): test_name = 'TestEntityWithSameImportsAsync' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True - doc = await corpus.fetch_object_async('local:/multipleImports.cdm.json') + doc = await corpus.fetch_object_async('local:/multipleImports.cdm.json', res_opt=res_opt) self.assertIsNotNone(doc) self.assertEqual(2, len(doc.imports)) first_import = doc.imports[0]._document @@ -75,8 +82,10 @@ async def test_loading_same_imports_async(self): """Testing docs that load the same import""" test_name = 'TestLoadingSameImportsAsync' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True - main_doc = await corpus.fetch_object_async('mainEntity.cdm.json') + main_doc = await corpus.fetch_object_async('mainEntity.cdm.json', res_opt=res_opt) self.assertIsNotNone(main_doc) self.assertEqual(2, len(main_doc.imports)) @@ -96,8 +105,10 @@ async def test_loading_same_missing_imports_async(self): """Testing docs that load the same import""" test_name = 'TestLoadingSameMissingImportsAsync' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True - main_doc = await corpus.fetch_object_async('mainEntity.cdm.json') + main_doc = await corpus.fetch_object_async('mainEntity.cdm.json', res_opt=res_opt) self.assertIsNotNone(main_doc) self.assertEqual(2, len(main_doc.imports)) @@ -116,9 +127,11 @@ async def test_loading_already_present_imports_async(self): """Testing docs that load the same import""" test_name = 'TestLoadingAlreadyPresentImportsAsync' corpus = TestHelper.get_local_corpus(self.tests_subpath, test_name) + res_opt = ResolveOptions() + res_opt.strict_validation = True # load the first doc - main_doc = await corpus.fetch_object_async('mainEntity.cdm.json') + main_doc = await corpus.fetch_object_async('mainEntity.cdm.json', res_opt=res_opt) self.assertIsNotNone(main_doc) self.assertEqual(1, len(main_doc.imports)) @@ -127,7 +140,7 @@ async def test_loading_already_present_imports_async(self): # now load the second doc, which uses the same import # the import should not be loaded again, it should be the same object - second_doc = await corpus.fetch_object_async('secondEntity.cdm.json') + second_doc = await corpus.fetch_object_async('secondEntity.cdm.json', res_opt=res_opt) self.assertIsNotNone(second_doc) self.assertEqual(1, len(second_doc.imports)) diff --git a/objectModel/Python/tests/common.py b/objectModel/Python/tests/common.py index d36807638d..9d49cd0c77 100644 --- a/objectModel/Python/tests/common.py +++ b/objectModel/Python/tests/common.py @@ -200,16 +200,36 @@ def compare_same_object_without_none_values(expected_data, actual_data) -> str: class TestUtils: @staticmethod - async def _get_resolved_entity(corpus: 'CdmCorpusDefinition', input_entity: 'CdmEntityDefinition', resolution_options: List[str]) -> 'CdmEntityDefinition': - """A function to resolve an entity""" + async def _get_resolved_entity(corpus: 'CdmCorpusDefinition', input_entity: 'CdmEntityDefinition', resolution_options: List[str], add_res_opt_to_name: Optional[bool] = False) -> 'CdmEntityDefinition': + """Resolves an entity""" ro_hash_set = set() for i in range(len(resolution_options)): ro_hash_set.add(resolution_options[i]) - resolved_entity_name = 'Resolved_{}'.format(input_entity.entity_name) + resolved_entity_name = '' + + if add_res_opt_to_name: + file_name_suffix = TestUtils.get_resolution_option_name_suffix(resolution_options) + resolved_entity_name = 'Resolved_{}{}'.format(input_entity.entity_name, file_name_suffix) + else: + resolved_entity_name = 'Resolved_{}'.format(input_entity.entity_name) + ro = ResolveOptions(input_entity.in_document, directives=AttributeResolutionDirectiveSet(ro_hash_set)) resolved_folder = corpus.storage.fetch_root_folder('output') resolved_entity = await input_entity.create_resolved_entity_async(resolved_entity_name, ro, resolved_folder) - return resolved_entity \ No newline at end of file + return resolved_entity + + @staticmethod + def get_resolution_option_name_suffix(resolution_options: List[str]) -> str: + """Returns a suffix that contains the file name and resolution option used""" + file_name_prefix = '' + + for i in range(len(resolution_options)): + file_name_prefix = '{}_{}'.format(file_name_prefix, resolution_options[i]) + + if not file_name_prefix: + file_name_prefix = '_default' + + return file_name_prefix diff --git a/objectModel/Python/tests/mock_storage_adapter.py b/objectModel/Python/tests/mock_storage_adapter.py index c81f34f676..eae16e2b69 100644 --- a/objectModel/Python/tests/mock_storage_adapter.py +++ b/objectModel/Python/tests/mock_storage_adapter.py @@ -9,6 +9,7 @@ class MockStorageAdapter(StorageAdapterBase): def __init__(self, target: Dict[str, str]): + super().__init__() self.target = target # type: Dict[str, str] def can_write(self) -> bool: @@ -23,20 +24,3 @@ def create_adapter_path(self, corpus_path: str) -> str: corpus_path = corpus_path[corpus_path.find(':') + 1:] return corpus_path - def can_read(self) -> bool: - raise NotImplementedError() - - def clear_cache(self) -> None: - raise NotImplementedError() - - async def fetch_all_files_async(self, folder_corpus_path: str) -> List[str]: - raise NotImplementedError() - - def create_corpus_path(self, adapter_path: str) -> Optional[str]: - raise NotImplementedError() - - async def read_async(self, corpus_path: str) -> str: - raise NotImplementedError() - - async def compute_last_modified_time_async(self, adapter_path: str) -> Optional[datetime]: - raise NotImplementedError() diff --git a/objectModel/Python/tests/persistence/cdmfolder/type_attribute/test_type_attribute.py b/objectModel/Python/tests/persistence/cdmfolder/type_attribute/test_type_attribute.py index 1413d41617..c58be86f22 100644 --- a/objectModel/Python/tests/persistence/cdmfolder/type_attribute/test_type_attribute.py +++ b/objectModel/Python/tests/persistence/cdmfolder/type_attribute/test_type_attribute.py @@ -11,7 +11,7 @@ from cdm.persistence.cdmfolder.entity_persistence import EntityPersistence from cdm.persistence.cdmfolder.types import TypeAttribute from cdm.storage import LocalAdapter -from cdm.utilities import JObject +from cdm.utilities import JObject, ResolveOptions from tests.common import async_test, TestHelper @@ -43,14 +43,13 @@ def test_non_null_default_value_attribute(self): @async_test async def test_reading_is_primary_key(self): - test_input_path = TestHelper.get_input_folder_path(self.tests_subpath, 'test_reading_is_primary_key') - corpus = CdmCorpusDefinition() - corpus.ctx.report_at_level = CdmStatusLevel.WARNING - corpus.storage.mount('local', LocalAdapter(test_input_path)) - corpus.storage.default_namespace = 'local' + corpus = TestHelper.get_local_corpus(self.tests_subpath, 'test_reading_is_primary_key') + + res_opt = ResolveOptions() + res_opt.strict_validation = True # read from an unresolved entity schema - entity = await corpus.fetch_object_async('local:/TeamMembership.cdm.json/TeamMembership') + entity = await corpus.fetch_object_async('local:/TeamMembership.cdm.json/TeamMembership', res_opt=res_opt) attribute_group_ref = entity.attributes[0] # type: CdmAttributeGroupReference attribute_group = attribute_group_ref.explicit_reference # type: CdmAttributeGroupDefinition type_attribute = attribute_group.members[0] # type: CdmTypeAttributeDefinition @@ -63,7 +62,7 @@ async def test_reading_is_primary_key(self): self.assertEqual('TeamMembership/(resolvedAttributes)/teamMembershipId', is_identified_by1.arguments[0].value) # read from a resolved entity schema - resolved_entity = await corpus.fetch_object_async('local:/TeamMembership_Resolved.cdm.json/TeamMembership') + resolved_entity = await corpus.fetch_object_async('local:/TeamMembership_Resolved.cdm.json/TeamMembership', res_opt=res_opt) resolved_type_attribute = resolved_entity.attributes[0] # type: CdmTypeAttributeDefinition self.assertTrue(resolved_type_attribute.is_primary_key) diff --git a/objectModel/Python/tests/testdata/cdm/Corpus/TestStrictValidation/Input/doc.cdm.json b/objectModel/Python/tests/testdata/cdm/Corpus/TestStrictValidation/Input/doc.cdm.json new file mode 100644 index 0000000000..87e198dc4b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Corpus/TestStrictValidation/Input/doc.cdm.json @@ -0,0 +1,9 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "definitions": [ + { + "traitName": "is.CDM", + "extendsTrait": "is" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt index b5a2d38fb9..8d35725227 100644 --- a/objectModel/Python/tests/testdata/cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt @@ -1,4 +1,9 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource @@ -6,12 +11,21 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/p Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/extends/CdmEntity Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/A Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B/Resolved_TestAllOperations/hasAttributes/B/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey -output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C/Resolved_TestAllOperations/hasAttributes/C/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/B +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/C +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/A_FK is.linkedEntity.identifier [Parameter (Name / DefaultValue): entityReferences / ] diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..4831c64bd8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..84a40c8dc5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..d140e00555 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..b85e4c00c5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..11db47873b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..036d38e697 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..79db84eb00 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..102fb216c4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..b4a669e6a7 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..9f349f008a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..22060cee5b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..c11c4a8497 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4a4da7a1bb --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7f03aa81eb --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d6913cca9b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..760d1c3e43 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..21779b5f13 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "GroupOfPeopleAge1", + "GroupOfPeopleAge2", + "GroupOfPeopleAge3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..c3ba904ee2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..c3dc03b884 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..10b6473ec9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..c2103b95b1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9dfc44639b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1a91399daa --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..770bfd4ae9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..4947e14174 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..183ddcde77 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..210a65544c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..8b2a5c2584 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..ccbf84132c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..1cc7f833ef --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b30ba00329 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..59b667f9bf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..746dd6979a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..66a79be952 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": { + "source": "ThreeMusketeers", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age1", + "age2", + "age3" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..898bb474ec --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..29617cf7d4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..ab440dd038 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..0a861e2127 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5633d36d1c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..817e308f12 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..731f8e007a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..acf59a37de --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..14b0e7d09f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..50d90d7ba8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..604ca61bbf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..6118ae63e2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2a48166864 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..91214b136e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..fc811c2dbc --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..c665ab52e9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..e5dff68336 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "age1", + "age2", + "age3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..e06f461e76 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json @@ -0,0 +1,34 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "condition": "referenceOnly", + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..ae71cfca00 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..275e07c722 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..7486d85c04 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..0be72be12d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..dcaaf42f73 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..21401b014e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..07e283469d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..56ff3c9fbd --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..7339589bec --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..2fad4d8b6e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..065822abbd --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..8114b48f53 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..3fd691fc03 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b78cae5a99 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..508a3c40db --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7ceeb71428 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..54b55ef957 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "PersonInfoAge", + "OccupationInfo" + ] + } + ], + "source": { + "entityReference": { + "entityName": "EmployedPerson", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person" + }, + { + "name": "OccupationInfo", + "entity": "Occupation" + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json new file mode 100644 index 0000000000..9441ce0cc3 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Occupation", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "title", + "dataType": "string" + }, + { + "name": "company", + "dataType": "string" + }, + { + "name": "tenure", + "dataType": "integer" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..1adcb29194 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + }, + { + "corpusPath": "Occupation.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..6f2ef614b4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + }, + { + "type": "LocalEntity", + "entityName": "Occupation", + "entitySchema": "Occupation.cdm.json/Occupation" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..bb752f3cc4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..648b6d88e9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..4d102cd18e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..e4d2986fd3 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..566488859d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6cb61844a2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f1e10a7a5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..2266dd17bd --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..f4db93b754 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json @@ -0,0 +1,30 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..a5397f4d5e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8cc3fa382e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..dc9b62925b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..54a335f38a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..316f331452 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..722a7c9220 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9f7e5f4c8c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0bffae9a4e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..7820e5d230 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,27 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..a5a4fc3457 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..d8062ffaea --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..293fd0e803 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..3275ccfc32 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0027dd0ba1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..6e10fce409 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..b2700722da --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..2aa84f4dc2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..c136af46ae --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..44574b5484 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..a4375d62ee --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2162871628 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..34b94171d0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6c3262f9c0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..c2b555f07e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json new file mode 100644 index 0000000000..f74d9c8658 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json @@ -0,0 +1,24 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": "Person", + "extendsEntityResolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "phoneNumber", + "email" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..aa4d5724b8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,29 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..e75f2812fa --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..bfde6d8958 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..4f9b2716e3 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..8bd9977a8b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..85807ee4aa --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..7bfedba49c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..73b340e97a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..ec027309de --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..dc7c397538 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..2846bba70a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..fe1185d9bb --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..9922350158 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..0d1fbbc8a1 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..f12d68507f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..0eacc29b9c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json new file mode 100644 index 0000000000..534ad12da8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json @@ -0,0 +1,27 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "phoneNumber", + "email" + ] + } + ] + }, + "hasAttributes": [] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..5accda3e69 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..1b20db6c36 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a8e5ab2706 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ade1e391cf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..562773ca9d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0eea58de31 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..c694ddc17b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..abf7743cc5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..b9ab1cbc76 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e5d1012a09 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4c1a52b3b7 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..67d84f5d7b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..65a9f1a779 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..9533378728 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d7d54a2b8b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..538d294544 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..cfc51ccedd --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..385731083f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..20b9b8feb7 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..d2a23cd44b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..54584aaa2c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..97c6b4eb63 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..2cc586a301 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..f42f28ebf4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..a257a3eb4a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..acb2f79773 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1295a201e0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b5542e967f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..94c2ba9cde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f903baacc --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..344a51646c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7d9f31af9d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..4881a6010a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b2dc538889 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a491730a37 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..f56801a5cf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..239574fa4b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6039be79e8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..039e6b5578 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..d484336523 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3201eeca56 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..9d3592bbca --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..c88b5f631c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d36ffe88bf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f40ad2bea8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7d8a767c83 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05bfdc6fc7 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..da56da271d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d37d09bd1d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8de0719c8f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e58d8be648 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..35ccd9ad3c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9816c7ced0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..b3b5be0d6a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..21f29e779e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..5012e46b82 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..c5c4025d78 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..7b492f672f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..d221c79165 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..42a0781548 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..cf960fd2b2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4571e90f54 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..5518c2e89a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0f676a9581 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..5b60c09ba7 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json @@ -0,0 +1,40 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "email" + ] + }, + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "name", + "age", + "address" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6c4f9ca606 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..043cdb5fee --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..0368d777c6 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..2010771295 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5fe3afa5c9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1e6f94af37 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..170a831d6b --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..4cf1ac2683 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6a1a157456 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..4d770b8336 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9c2620219c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d8a353b931 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f850cb0fc8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..196ed28794 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..a950eb4afa --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9891b7ad2e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..136f80d8b2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age" + ] + } + ], + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": "Person" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..ea8d2baad5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..ae777a8df9 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..3e8af81c67 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..aa3c262344 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..0f8eb12a69 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6b69860f3f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..ba961ca94c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..37af52eeef --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..215e7508cf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..40415a5647 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4f93e5d946 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b46819e324 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..ad5bed2eba --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..2afbbeeb2c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c8f7323979 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..17d9739e7e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..e9778bd0f5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json @@ -0,0 +1,57 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "socialId", + "account" + ] + } + }, + "entity": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..e6a0e5f1c5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..dd664dda22 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..cb2be99126 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..f2789bf951 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..820aafe34e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..342475d633 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..4d778feb9f --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..4eb6571a18 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..5160ce6bd6 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..d7fff5da7d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1af2781a85 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..68e5e7c86e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..71250ebb5e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4bce14be16 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6958c9a099 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..967537f9b4 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..505dc92539 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "isPolymorphicSource": true, + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "socialId", + "account" + ] + } + ], + "source": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d29efce605 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b7ddf27b38 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..18e58c7c72 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..67a0db86d6 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9ea535b310 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..96f03ce507 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..27551e14b2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..c769fee3f3 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6125d3161e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..27241ede7d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..91a8a24c34 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..698cffbe26 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4c7e071ff2 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..455731e731 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c0a6fc7340 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0983b02b7d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..361d8cec5c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..9176b98b8c --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e8d2e7055d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..27b209abde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..421a22988e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..ef7aaa7187 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..893733ccff --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..9bc814b201 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..fee00cee12 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..6e99bf2c24 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..62e3a6c4aa --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..057aa581c5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..eb02b901c8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..92e2f2d32a --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..00ac14e06d --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..b879f69aec --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6033a16a90 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..a599777fe3 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..87e533abde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ed9a874617 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..aef9bf0cab --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..c6deb403d8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..fc49d9bba8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..af5466cc19 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3637ced643 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..f9068f1663 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9167121ea5 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..72481caa02 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..b9f451e757 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..cf6cae27c8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..7ff32587fe --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9bd71210bf --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..a88d635959 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,41 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": { + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": { + "source": { + "source": "Person" + } + } + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/Python/tests/testdata/cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/Cdm/CdmCorpusDefinition.ts b/objectModel/TypeScript/Cdm/CdmCorpusDefinition.ts index d59f1bb1ab..09c989a14b 100644 --- a/objectModel/TypeScript/Cdm/CdmCorpusDefinition.ts +++ b/objectModel/TypeScript/Cdm/CdmCorpusDefinition.ts @@ -95,6 +95,7 @@ import { } from '../Utilities/cdmObjectTypeGuards'; import { StorageUtils } from '../Utilities/StorageUtils'; import { VisitCallback } from '../Utilities/VisitCallback'; +import { type } from 'os'; export class CdmCorpusDefinition { public get profiler(): ICdmProfiler { @@ -138,10 +139,6 @@ export class CdmCorpusDefinition { * @internal */ public rootManifest: CdmManifestDefinition; - /** - * @internal - */ - public objectCache: Map; /** * @internal */ @@ -151,7 +148,6 @@ export class CdmCorpusDefinition { */ public readonly resEntMap: Map; private readonly symbolDefinitions: Map; - private readonly defintionWrtTag: Map; private readonly emptyRTS: Map; private readonly namespaceFolders: Map; @@ -167,12 +163,10 @@ export class CdmCorpusDefinition { this.namespaceFolders = new Map(); this.symbolDefinitions = new Map(); this.definitionReferenceSymbols = new Map(); - this.defintionWrtTag = new Map(); this.emptyRTS = new Map(); this.outgoingRelationships = new Map(); this.incomingRelationships = new Map(); this.resEntMap = new Map(); - this.objectCache = new Map(); this.documentLibrary = new DocumentLibrary(); this.ctx = new resolveContext(this); @@ -284,7 +278,7 @@ export class CdmCorpusDefinition { */ public async createRootManifest(corpusPath: string): Promise { if (this.isPathManifestDocument(corpusPath)) { - this.rootManifest = await this._fetchObjectAsync(corpusPath, undefined, false) as CdmManifestDefinition; + this.rootManifest = await this.fetchObjectAsync(corpusPath, undefined, false) as CdmManifestDefinition; return this.rootManifest; } @@ -398,65 +392,65 @@ export class CdmCorpusDefinition { expectedType: cdmObjectType, retry: boolean ): CdmObjectBase { - // let bodyCode = () => - { - // given a symbolic name, - // find the 'highest priority' definition of the object from the point of view of a given document (with respect to, wrtDoc) - // (meaning given a document and the things it defines and the files it imports and the files they import, - // where is the 'last' definition found) - if (!resOpt || !resOpt.wrtDoc) { - return undefined; - } // no way to figure this out - const wrtDoc: CdmDocumentDefinition = resOpt.wrtDoc; - - // get the array of documents where the symbol is defined - const symbolDocsResult: docsResult = this.docsForSymbol(resOpt, wrtDoc, fromDoc, symbolDef); - let docBest: CdmDocumentDefinition = symbolDocsResult.docBest; - symbolDef = symbolDocsResult.newSymbol; - const docs: CdmDocumentDefinition[] = symbolDocsResult.docList; - if (docs) { - // add this symbol to the set being collected in resOpt, we will need this when caching - if (!resOpt.symbolRefSet) { - resOpt.symbolRefSet = new SymbolSet(); - } - resOpt.symbolRefSet.add(symbolDef); - // for the given doc, there is a sorted list of imported docs (including the doc itself as item 0). - // find the lowest number imported document that has a definition for this symbol - if (!wrtDoc.importPriorities) { - return undefined; // need to index imports first, should have happened - } - const importPriority: Map = wrtDoc.importPriorities.importPriority; - if (importPriority.size === 0) { - return undefined; - } + // given a symbolic name, + // find the 'highest priority' definition of the object from the point of view of a given document (with respect to, wrtDoc) + // (meaning given a document and the things it defines and the files it imports and the files they import, + // where is the 'last' definition found) + if (!resOpt || !resOpt.wrtDoc) { + return undefined; + } // no way to figure this out + const wrtDoc: CdmDocumentDefinition = resOpt.wrtDoc; - if (!docBest) { - docBest = CdmCorpusDefinition.fetchPriorityDoc(docs, importPriority) || docBest; - } - } + if (wrtDoc.needsIndexing && !wrtDoc.currentlyIndexing) { + Logger.error(CdmCorpusDefinition.name, wrtDoc.ctx, `Document not index previsouly. Please when calling fetchObjectAsync specify the 'strictValidation' flag on the ResolveOptions object.`, this.resolveSymbolReference.name); + } - // perhaps we have never heard of this symbol in the imports for this document? - if (!docBest) { + // get the array of documents where the symbol is defined + const symbolDocsResult: docsResult = this.docsForSymbol(resOpt, wrtDoc, fromDoc, symbolDef); + let docBest: CdmDocumentDefinition = symbolDocsResult.docBest; + symbolDef = symbolDocsResult.newSymbol; + const docs: CdmDocumentDefinition[] = symbolDocsResult.docList; + if (docs) { + // add this symbol to the set being collected in resOpt, we will need this when caching + if (!resOpt.symbolRefSet) { + resOpt.symbolRefSet = new SymbolSet(); + } + resOpt.symbolRefSet.add(symbolDef); + // for the given doc, there is a sorted list of imported docs (including the doc itself as item 0). + // find the lowest number imported document that has a definition for this symbol + if (!wrtDoc.importPriorities) { + return undefined; // need to index imports first, should have happened + } + const importPriority: Map = wrtDoc.importPriorities.importPriority; + if (importPriority.size === 0) { return undefined; } - // return the definition found in the best document - let found: CdmObjectBase = docBest.internalDeclarations.get(symbolDef); - if (found === undefined && retry === true) { - // maybe just locatable from here not defined here. - // this happens when the symbol is monikered, but the moniker path doesn't lead to the document where the symbol is defined. - // it leads to the document from where the symbol can be found. - // Ex.: resolvedFrom/Owner, while resolvedFrom is the Account that imports Owner. - found = this.resolveSymbolReference(resOpt, docBest, symbolDef, expectedType, false); + if (!docBest) { + docBest = CdmCorpusDefinition.fetchPriorityDoc(docs, importPriority) || docBest; } + } - if (found && expectedType !== cdmObjectType.error) { - found = this.reportErrorStatus(found, symbolDef, expectedType); - } + // perhaps we have never heard of this symbol in the imports for this document? + if (!docBest) { + return undefined; + } - return found; + // return the definition found in the best document + let found: CdmObjectBase = docBest.internalDeclarations.get(symbolDef); + if (found === undefined && retry === true) { + // maybe just locatable from here not defined here. + // this happens when the symbol is monikered, but the moniker path doesn't lead to the document where the symbol is defined. + // it leads to the document from where the symbol can be found. + // Ex.: resolvedFrom/Owner, while resolvedFrom is the Account that imports Owner. + found = this.resolveSymbolReference(resOpt, docBest, symbolDef, expectedType, false); } - // return p.measure(bodyCode); + + if (found && expectedType !== cdmObjectType.error) { + found = this.reportErrorStatus(found, symbolDef, expectedType); + } + + return found; } /** @@ -763,8 +757,7 @@ export class CdmCorpusDefinition { // let bodyCode = () => { const doc: CdmDocumentDefinition = docDef; - // don't worry about defintionWrtTag because it uses the doc ID - // that won't get re-used in this session unless there are more than 4 billion objects + // every symbol defined in this document is pointing at the document, so remove from cache. // also remove the list of docs that it depends on this.removeObjectDefinitions(doc); @@ -780,64 +773,73 @@ export class CdmCorpusDefinition { /** * @internal */ - public indexDocuments(resOpt: resolveOptions): boolean { - // let bodyCode = () => - { - const docsNotIndexed: Set = this.documentLibrary.listDocsNotIndexed(); - if (docsNotIndexed.size > 0) { - // index any imports - for (const doc of docsNotIndexed) { - if (doc.needsIndexing) { - Logger.debug(CdmCorpusDefinition.name, this.ctx, `index start: ${doc.atCorpusPath}`, this.indexDocuments.name); - doc.clearCaches(); - doc.getImportPriorities(); - } - } - // check basic integrity - for (const doc of docsNotIndexed) { - if (doc.needsIndexing) { - doc.isValid = true; // assume valid unless this fails - if (!this.checkObjectIntegrity(doc)) { - doc.isValid = false; - } - } - } - // declare definitions of objects in this doc - for (const doc of docsNotIndexed) { - if (doc.needsIndexing && doc.isValid) { - this.declareObjectDefinitions(doc, ''); - } - } - // make sure we can find everything that is named by reference - for (const doc of docsNotIndexed) { - if (doc.needsIndexing && doc.isValid) { - const resOptLocal: resolveOptions = CdmObjectBase.copyResolveOptions(resOpt); - resOptLocal.wrtDoc = doc; - this.resolveObjectDefinitions(resOptLocal, doc); - } + public indexDocuments(resOpt: resolveOptions, strictValidation: boolean): boolean { + const docsNotIndexed: Set = this.documentLibrary.listDocsNotIndexed(); + + if (docsNotIndexed.size == 0) { + return true; + } + + for (const doc of docsNotIndexed) { + if (!doc.declarationsIndexed) { + Logger.debug(CdmCorpusDefinition.name, this.ctx, `index start: ${doc.atCorpusPath}`, this.indexDocuments.name); + doc.clearCaches(); + } + } + + // check basic integrity + for (const doc of docsNotIndexed) { + if (!doc.declarationsIndexed) { + doc.isValid = true; // assume valid unless this fails + if (!this.checkObjectIntegrity(doc)) { + doc.isValid = false; } - // now resolve any trait arguments that are type object - for (const doc of docsNotIndexed) { - if (doc.needsIndexing && doc.isValid) { - const resOptLocal: resolveOptions = CdmObjectBase.copyResolveOptions(resOpt); - resOptLocal.wrtDoc = doc; - this.resolveTraitArguments(resOptLocal, doc); - } + } + } + + // declare definitions of objects in this doc + for (const doc of docsNotIndexed) { + if (!doc.declarationsIndexed && doc.isValid) { + this.declareObjectDefinitions(doc, ''); + } + } + + if (strictValidation) { + // index any imports + for (const doc of docsNotIndexed) { + doc.getImportPriorities(); + } + + // make sure we can find everything that is named by reference + for (const doc of docsNotIndexed) { + if (doc.isValid) { + const resOptLocal: resolveOptions = CdmObjectBase.copyResolveOptions(resOpt); + resOptLocal.wrtDoc = doc; + this.resolveObjectDefinitions(resOptLocal, doc); } - // finish up - for (const doc of docsNotIndexed) { - if (doc.needsIndexing) { - Logger.debug(CdmCorpusDefinition.name, this.ctx, `index finish: ${doc.atCorpusPath}`, this.indexDocuments.name); - this.finishDocumentResolve(doc); - } + } + // now resolve any trait arguments that are type object + for (const doc of docsNotIndexed) { + if (doc.isValid) { + const resOptLocal: resolveOptions = CdmObjectBase.copyResolveOptions(resOpt); + resOptLocal.wrtDoc = doc; + this.resolveTraitArguments(resOptLocal, doc); } - // return p.measure(bodyCode); } + } - return true; + // finish up + for (const doc of docsNotIndexed) { + Logger.debug(CdmCorpusDefinition.name, this.ctx, `index finish: ${doc.atCorpusPath}`, this.indexDocuments.name); + this.finishDocumentResolve(doc, strictValidation); } + + return true; } + /** + * @deprecated + */ public visit(path: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean { return false; } @@ -896,14 +898,28 @@ export class CdmCorpusDefinition { } /** - * @internal + * Fetches an object by the path from the corpus. + * @param objectPath Object path, absolute or relative. + * @param obj Optional parameter. When provided, it is used to obtain the FolderPath and the Namespace needed + * to create the absolute path from a relative path. + * @param shallowValidationOrResOpt Optional parameter. When provided, shallow validation in ResolveOptions is enabled, + * which logs errors regarding resolving/loading references as warnings. + * It also accepts a ResolveOptions object. When provided, will use be used to determine how the symbols are resolved. + * @param forceReload Optional parameter. When true, the document containing the requested object is reloaded from storage + * to access any external changes made to the document since it may have been cached by the corpus. + * @returns The object obtained from the provided path. */ - public async _fetchObjectAsync( - objectPath: string, - obj: CdmObject, - forceReload: boolean = false, - shallowValidation: boolean = false - ): Promise { + public async fetchObjectAsync(objectPath: string, obj?: CdmObject, shallowValidationOrResOpt: boolean | resolveOptions | undefined = undefined, forceReload: boolean = false): Promise { + let resOpt: resolveOptions; + if (typeof(shallowValidationOrResOpt) === 'boolean') { + resOpt = new resolveOptions(); + resOpt.shallowValidation = shallowValidationOrResOpt; + } else if (shallowValidationOrResOpt === undefined) { + resOpt = new resolveOptions(); + } else { + resOpt = shallowValidationOrResOpt; + } + objectPath = this.storage.createAbsoluteCorpusPath(objectPath, obj); let documentPath: string = objectPath; @@ -915,14 +931,12 @@ export class CdmCorpusDefinition { documentPath = objectPath.slice(0, documentNameIndex); } - Logger.debug(CdmCorpusDefinition.name, this.ctx, `request object: ${objectPath}`, this._fetchObjectAsync.name); + Logger.debug(CdmCorpusDefinition.name, this.ctx, `request object: ${objectPath}`, this.fetchObjectAsync.name); const newObj: CdmContainerDefinition = await this.loadFolderOrDocument(documentPath, forceReload); if (newObj) { - const resOpt: resolveOptions = new resolveOptions(newObj, new AttributeResolutionDirectiveSet()); // get imports and index each document that is loaded if (newObj instanceof CdmDocumentDefinition) { - resOpt.shallowValidation = shallowValidation; if (!await newObj.indexIfNeeded(resOpt)) { return undefined; } @@ -930,19 +944,19 @@ export class CdmCorpusDefinition { Logger.error( CdmCorpusDefinition.name, this.ctx, `The requested path: ${objectPath} involves a document that failed validation`, - this._fetchObjectAsync.name); + this.fetchObjectAsync.name); return undefined; } } if (documentPath === objectPath) { - return newObj; + return newObj as unknown as T; } if (documentNameIndex === -1) { // there is no remaining path to be loaded, so return. - return; + return undefined; } // trim off the document path to get the object path in the doc @@ -954,29 +968,14 @@ export class CdmCorpusDefinition { CdmCorpusDefinition.name, this.ctx, `Could not find symbol '${remainingObjectPath}' in document [${newObj.atCorpusPath}]`, - this._fetchObjectAsync.name + this.fetchObjectAsync.name ); } - return result; + return result as unknown as T; } } - /** - * Fetches an object by the path from the corpus. - * @param objectPath Object path, absolute or relative. - * @param obj Optional parameter. When provided, it is used to obtain the FolderPath and the Namespace needed - * to create the absolute path from a relative path. - * @param shallowValidation Optional parameter. When provided, shallow validation in ResolveOptions is enabled, - * which logs errors regarding resolving/loading references as warnings. - * @param forceReload Optional parameter. When true, the document containing the requested object is reloaded from storage - * to access any external changes made to the document since it may have been cached by the corpus. - * @returns The object obtained from the provided path. - */ - public async fetchObjectAsync(objectPath: string, obj?: CdmObject, shallowValidation: boolean = false, forceReload: boolean = false): Promise { - return this._fetchObjectAsync(objectPath, obj, forceReload, shallowValidation) as undefined as T; - } - public setEventCallback( status: EventCallback, reportAtLevel: cdmStatusLevel = cdmStatusLevel.info @@ -1445,12 +1444,17 @@ export class CdmCorpusDefinition { /** * @internal */ - public finishDocumentResolve(doc: CdmDocumentDefinition): void { + public finishDocumentResolve(doc: CdmDocumentDefinition, strictValidation: boolean): void { + const wasIndexedPreviously = doc.declarationsIndexed; + doc.currentlyIndexing = false; - doc.importsIndexed = true; - doc.needsIndexing = false; + doc.importsIndexed = doc.importsIndexed || !strictValidation; + doc.declarationsIndexed = true; + doc.needsIndexing = !strictValidation; this.documentLibrary.markDocumentAsIndexed(doc); - if (doc.isValid) { + + // if the document declarations were indexed previously, do not log again. + if (!wasIndexedPreviously && doc.isValid) { for (const def of doc.definitions.allItems) { if (isEntityDefinition(def)) { Logger.debug(CdmCorpusDefinition.name, this.ctx as resolveContext, `indexed entity: ${def.atCorpusPath}`); @@ -1468,7 +1472,7 @@ export class CdmCorpusDefinition { const ctx: resolveContext = this.ctx as resolveContext; Logger.debug(CdmCorpusDefinition.name, ctx, 'finishing...'); for (const doc of this.documentLibrary.listAllDocuments()) { - this.finishDocumentResolve(doc); + this.finishDocumentResolve(doc, false); } } // return p.measure(bodyCode); @@ -1871,6 +1875,7 @@ export class CdmCorpusDefinition { /** * Resolves references according to the provided stages and validates. * @returns The validation step that follows the completed step + * @deprecated */ public async resolveReferencesAndValidateAsync( stage: cdmValidationStep, diff --git a/objectModel/TypeScript/Cdm/CdmDocumentDefinition.ts b/objectModel/TypeScript/Cdm/CdmDocumentDefinition.ts index 81131bc8f3..466e1b91de 100644 --- a/objectModel/TypeScript/Cdm/CdmDocumentDefinition.ts +++ b/objectModel/TypeScript/Cdm/CdmDocumentDefinition.ts @@ -101,6 +101,10 @@ export class CdmDocumentDefinition extends cdmObjectSimple implements CdmDocumen * @internal */ public isDirty: boolean = true; + /** + * @internal + */ + public declarationsIndexed: boolean; /** * @internal */ @@ -128,6 +132,7 @@ export class CdmDocumentDefinition extends cdmObjectSimple implements CdmDocumen this.jsonSchemaSemanticVersion = '1.0.0'; this.needsIndexing = true; this.importsIndexed = false; + this.declarationsIndexed = false; this.isDirty = true; this.currentlyIndexing = false; this.isValid = true; @@ -452,7 +457,7 @@ export class CdmDocumentDefinition extends cdmObjectSimple implements CdmDocumen options = new copyOptions(); } const resOpt: resolveOptions = new resolveOptions(this, this.ctx.corpus.defaultResolutionDirectives); - if (await this.indexIfNeeded(resOpt) === false) { + if (!await this.indexIfNeeded(resOpt)) { Logger.error( CdmDocumentDefinition.name, this.ctx, @@ -480,33 +485,41 @@ export class CdmDocumentDefinition extends cdmObjectSimple implements CdmDocumen } this.needsIndexing = true; + this.importPriorities = undefined; + this.importsIndexed = false; + this.declarationsIndexed = false; this.isValid = true; - return this.indexIfNeeded(resOpt); + return this.indexIfNeeded(resOpt, true); } /** * @internal * Remove any old document content from caches and re-declare and resolve with new content */ - public async indexIfNeeded(resOpt: resolveOptions): Promise { + public async indexIfNeeded(resOpt: resolveOptions, strictValidation: boolean = false): Promise { // let bodyCode = () => { - if (this.needsIndexing) { + if (this.needsIndexing && !this.currentlyIndexing) { if (!this.folder) { Logger.error(CdmDocumentDefinition.name, this.ctx, `Document '${this.name}' is not in a folder`, this.indexIfNeeded.name); - return false; } - // make the corpus internal machinery pay attention to this document for this call + const corpus: CdmCorpusDefinition = this.folder.corpus; - await corpus.resolveImportsAsync(this, resOpt); + if (resOpt.strictValidation !== undefined) { + strictValidation = resOpt.strictValidation; + } - // maintain actual current doc + if (strictValidation) { + await corpus.resolveImportsAsync(this, resOpt); + } + + // make the corpus internal machinery pay attention to this document for this call corpus.documentLibrary.markDocumentForIndexing(this); - return corpus.indexDocuments(resOpt); + return corpus.indexDocuments(resOpt, strictValidation); } return true; diff --git a/objectModel/TypeScript/Cdm/CdmEntityDefinition.ts b/objectModel/TypeScript/Cdm/CdmEntityDefinition.ts index 9fca3fc667..c051d656ac 100644 --- a/objectModel/TypeScript/Cdm/CdmEntityDefinition.ts +++ b/objectModel/TypeScript/Cdm/CdmEntityDefinition.ts @@ -614,7 +614,7 @@ export class CdmEntityDefinition extends CdmObjectDefinitionBase implements CdmE } // if the wrtDoc needs to be indexed (like it was just modified) then do that first - if (await (resOpt.wrtDoc.indexIfNeeded(resOpt)) === false) { + if (!await resOpt.wrtDoc.indexIfNeeded(resOpt, true)) { Logger.error( CdmEntityDefinition.name, this.ctx, diff --git a/objectModel/TypeScript/Cdm/CdmLocalEntityDeclarationDefinition.ts b/objectModel/TypeScript/Cdm/CdmLocalEntityDeclarationDefinition.ts index ad11d0c64e..dc6a686900 100644 --- a/objectModel/TypeScript/Cdm/CdmLocalEntityDeclarationDefinition.ts +++ b/objectModel/TypeScript/Cdm/CdmLocalEntityDeclarationDefinition.ts @@ -17,6 +17,7 @@ import { resolveOptions, VisitCallback } from '../internal'; +import {StorageAdapterBase , StorageAdapterCacheContext } from 'Storage/StorageAdapterBase'; import * as timeUtils from '../Utilities/timeUtils'; /** @@ -187,21 +188,31 @@ export class CdmLocalEntityDeclarationDefinition extends CdmObjectDefinitionBase * @inheritdoc */ public async fileStatusCheckAsync(): Promise { - const fullPath: string = this.ctx.corpus.storage.createAbsoluteCorpusPath(this.entityPath, this.inDocument); - const modifiedTime: Date = await this.ctx.corpus.computeLastModifiedTimeAsync(fullPath, this); - for (const partition of this.dataPartitions) { - await partition.fileStatusCheckAsync(); - } + let adapter: StorageAdapterBase = this.ctx.corpus.storage.fetchAdapter(this.inDocument.namespace) as StorageAdapterBase; + let cacheContext: StorageAdapterCacheContext = (adapter != null) ? adapter.createFileQueryCacheContext() : null; + try { + const fullPath: string = this.ctx.corpus.storage.createAbsoluteCorpusPath(this.entityPath, this.inDocument); + const modifiedTime: Date = await this.ctx.corpus.computeLastModifiedTimeAsync(fullPath, this); - for (const pattern of this.dataPartitionPatterns) { - await pattern.fileStatusCheckAsync(); - } + for (const pattern of this.dataPartitionPatterns) { + await pattern.fileStatusCheckAsync(); + } - this.lastFileStatusCheckTime = new Date(); - this.lastFileModifiedTime = timeUtils.maxTime(modifiedTime, this.lastFileModifiedTime); + for (const partition of this.dataPartitions) { + await partition.fileStatusCheckAsync(); + } + + this.lastFileStatusCheckTime = new Date(); + this.lastFileModifiedTime = timeUtils.maxTime(modifiedTime, this.lastFileModifiedTime); - await this.reportMostRecentTimeAsync(this.lastFileModifiedTime); + await this.reportMostRecentTimeAsync(this.lastFileModifiedTime); + } + finally { + if(cacheContext != null) { + cacheContext.dispose() + } + } } /** diff --git a/objectModel/TypeScript/Cdm/CdmManifestDefinition.ts b/objectModel/TypeScript/Cdm/CdmManifestDefinition.ts index 7873110ae8..31a4c1da5b 100644 --- a/objectModel/TypeScript/Cdm/CdmManifestDefinition.ts +++ b/objectModel/TypeScript/Cdm/CdmManifestDefinition.ts @@ -24,6 +24,7 @@ import { VisitCallback } from '../internal'; import { isLocalEntityDeclarationDefinition, isReferencedEntityDeclarationDefinition } from '../Utilities/cdmObjectTypeGuards'; +import { StorageAdapterBase, StorageAdapterCacheContext } from 'Storage/StorageAdapterBase'; import * as timeUtils from '../Utilities/timeUtils'; const rel2CacheKey = (rel: CdmE2ERelationship): string => { @@ -448,26 +449,35 @@ export class CdmManifestDefinition extends CdmDocumentDefinition implements CdmF * @inheritdoc */ public async fileStatusCheckAsync(): Promise { - const modifiedTime: Date = await (this.ctx.corpus).getLastModifiedTimeAsyncFromObject(this); + let adapter: StorageAdapterBase = this.ctx.corpus.storage.fetchAdapter(this.inDocument.namespace) as StorageAdapterBase; + let cacheContext: StorageAdapterCacheContext = (adapter != null) ? adapter.createFileQueryCacheContext() : null; + try { + const modifiedTime: Date = await (this.ctx.corpus).getLastModifiedTimeAsyncFromObject(this); - for (const entity of this.entities) { - await entity.fileStatusCheckAsync(); - } + for (const entity of this.entities) { + await entity.fileStatusCheckAsync(); + } - for (const subManifest of this.subManifests) { - await subManifest.fileStatusCheckAsync(); - } + for (const subManifest of this.subManifests) { + await subManifest.fileStatusCheckAsync(); + } - this.lastFileStatusCheckTime = new Date(); - if (!this.lastFileModifiedTime) { - this.lastFileModifiedTime = this._fileSystemModifiedTime; - } + this.lastFileStatusCheckTime = new Date(); + if (!this.lastFileModifiedTime) { + this.lastFileModifiedTime = this._fileSystemModifiedTime; + } - // reload the manifest if it has been updated in the file system - if (modifiedTime && this._fileSystemModifiedTime && modifiedTime.getTime() !== this._fileSystemModifiedTime.getTime()) { - await this.reload(); - this.lastFileModifiedTime = timeUtils.maxTime(modifiedTime, this.lastFileModifiedTime); - this._fileSystemModifiedTime = this.lastFileModifiedTime; + // reload the manifest if it has been updated in the file system + if (modifiedTime && this._fileSystemModifiedTime && modifiedTime.getTime() !== this._fileSystemModifiedTime.getTime()) { + await this.reload(); + this.lastFileModifiedTime = timeUtils.maxTime(modifiedTime, this.lastFileModifiedTime); + this._fileSystemModifiedTime = this.lastFileModifiedTime; + } + } + finally { + if(cacheContext != null) { + cacheContext.dispose() + } } } diff --git a/objectModel/TypeScript/Cdm/CdmObjectReferenceBase.ts b/objectModel/TypeScript/Cdm/CdmObjectReferenceBase.ts index 432db99d5c..a38637e5ff 100644 --- a/objectModel/TypeScript/Cdm/CdmObjectReferenceBase.ts +++ b/objectModel/TypeScript/Cdm/CdmObjectReferenceBase.ts @@ -157,7 +157,7 @@ export abstract class CdmObjectReferenceBase extends CdmObjectBase implements Cd } } else { // normal symbolic reference, look up from the Corpus, it knows where everything is - res = (this.ctx.corpus).resolveSymbolReference(resOpt, this.inDocument, this.namedReference, this.objectType, true); + res = this.ctx.corpus.resolveSymbolReference(resOpt, this.inDocument, this.namedReference, this.objectType, true); } return res; @@ -256,6 +256,36 @@ export abstract class CdmObjectReferenceBase extends CdmObjectBase implements Cd // return p.measure(bodyCode); } + public async fetchObjectDefinitionAsync(resOpt?: resolveOptions): Promise { + // let bodyCode = () => + { + if (!resOpt) { + resOpt = new resolveOptions(this, this.ctx.corpus.defaultResolutionDirectives); + } + + if (!resOpt.wrtDoc) { + return undefined; + } + + const wrtDoc: CdmDocumentDefinition = resOpt.wrtDoc; + if (!await wrtDoc.indexIfNeeded(resOpt, true)) { + Logger.error(CdmCorpusDefinition.name, wrtDoc.ctx, `Could not index document ${wrtDoc.atCorpusPath}.`, this.fetchObjectDefinitionAsync.name); + return null; + } + + let def: T = this.fetchResolvedReference(resOpt) as unknown as T; + if (def !== undefined) { + if (isCdmObjectReference(def)) { + def = def.fetchResolvedReference() as unknown as T; + } + } + if (def !== undefined && !isCdmObjectReference(def)) { + return def; + } + } + // return p.measure(bodyCode); + } + public validate(): boolean { // let bodyCode = () => { diff --git a/objectModel/TypeScript/Cdm/CdmTraitReference.ts b/objectModel/TypeScript/Cdm/CdmTraitReference.ts index 855d895c7b..80d90e0b5f 100644 --- a/objectModel/TypeScript/Cdm/CdmTraitReference.ts +++ b/objectModel/TypeScript/Cdm/CdmTraitReference.ts @@ -211,12 +211,12 @@ export class CdmTraitReference extends CdmObjectReferenceBase { let aValue: ArgumentValue; let iArg: number = 0; - for (const a of this.arguments) { - paramFound = params.resolveParameter(iArg, a.getName()); - a.resolvedParameter = paramFound; - aValue = a.value; + for (const argument of this.arguments) { + paramFound = params.resolveParameter(iArg, argument.getName()); + argument.resolvedParameter = paramFound; + aValue = argument.value; aValue = ctx.corpus.constTypeCheck(resOpt, this.inDocument, paramFound, aValue); - a.value = aValue; + argument.value = aValue; iArg++; } } diff --git a/objectModel/TypeScript/Cdm/DocumentLibrary.ts b/objectModel/TypeScript/Cdm/DocumentLibrary.ts index dd62804246..470b27cb02 100644 --- a/objectModel/TypeScript/Cdm/DocumentLibrary.ts +++ b/objectModel/TypeScript/Cdm/DocumentLibrary.ts @@ -81,7 +81,13 @@ export class DocumentLibrary { * Returns a list of all the documents that are not loaded. */ public listDocsNotIndexed(): Set { - return this.docsNotIndexed; + const docsNotIndexed: Set = new Set(); + // gets all the documents that needs indexing and set the currentlyIndexing flag to true. + this.docsNotIndexed.forEach(doc => { + doc.currentlyIndexing = true; + docsNotIndexed.add(doc); + }); + return docsNotIndexed; } /** diff --git a/objectModel/TypeScript/Cdm/Projections/CdmOperationExcludeAttributes.ts b/objectModel/TypeScript/Cdm/Projections/CdmOperationExcludeAttributes.ts index 06ca8e084c..cecabd5e34 100644 --- a/objectModel/TypeScript/Cdm/Projections/CdmOperationExcludeAttributes.ts +++ b/objectModel/TypeScript/Cdm/Projections/CdmOperationExcludeAttributes.ts @@ -2,7 +2,9 @@ // Licensed under the MIT License. See License.txt in the project root for license information. import { + AttributeContextParameters, CdmAttributeContext, + cdmAttributeContextType, CdmCorpusContext, CdmObject, cdmObjectType, @@ -10,8 +12,10 @@ import { cdmOperationType, Errors, Logger, + ProjectionAttributeState, ProjectionAttributeStateSet, ProjectionContext, + ProjectionResolutionCommonUtil, resolveOptions, VisitCallback } from '../../internal'; @@ -27,6 +31,7 @@ export class CdmOperationExcludeAttributes extends CdmOperationBase { super(ctx); this.objectType = cdmObjectType.operationExcludeAttributesDef; this.type = cdmOperationType.excludeAttributes; + this.excludeAttributes = []; } /** @@ -65,7 +70,7 @@ export class CdmOperationExcludeAttributes extends CdmOperationBase { public validate(): boolean { const missingFields: string[] = []; - if (!this.excludeAttributes || this.excludeAttributes.length === 0) { + if (!this.excludeAttributes) { missingFields.push('excludeAttributes'); } @@ -111,8 +116,58 @@ export class CdmOperationExcludeAttributes extends CdmOperationBase { * @inheritdoc * @internal */ - public appendProjectionAttributeState(projCtx: ProjectionContext, projAttrStateSet: ProjectionAttributeStateSet, attrCtx: CdmAttributeContext): ProjectionAttributeStateSet { - Logger.error(this.TAG, this.ctx, 'Projection operation not implemented yet.', this.appendProjectionAttributeState.name); - return undefined; + public appendProjectionAttributeState(projCtx: ProjectionContext, projOutputSet: ProjectionAttributeStateSet, attrCtx: CdmAttributeContext): ProjectionAttributeStateSet { + // Create a new attribute context for the operation + const attrCtxOpExcludeAttrsParam: AttributeContextParameters = { + under: attrCtx, + type: cdmAttributeContextType.operationExcludeAttributes, + name: `operation/index${this.index}/operationExcludeAttributes` + }; + const attrCtxOpExcludeAttrs: CdmAttributeContext = CdmAttributeContext.createChildUnder(projCtx.projectionDirective.resOpt, attrCtxOpExcludeAttrsParam); + + // Get the top-level attribute names of the attributes to exclude + // We use the top-level names because the exclude list may contain a previous name our current resolved attributes had + const topLevelExcludeAttributeNames: Map = ProjectionResolutionCommonUtil.getTopList(projCtx, this.excludeAttributes); + + // Iterate through all the projection attribute states generated from the source's resolved attributes + // Each projection attribute state contains a resolved attribute that it is corresponding to + for (const currentPAS of projCtx.currentAttributeStateSet.values) { + // Check if the current projection attribute state's resolved attribute is in the list of attributes to exclude + // If this attribute is not in the exclude list, then we are including it in the output + if (!topLevelExcludeAttributeNames.has(currentPAS.currentResolvedAttribute.resolvedName)) { + // Create a new attribute context for the attribute that we are including + const attrCtxAddedAttrParam: AttributeContextParameters = { + under: attrCtx, + type: cdmAttributeContextType.attributeDefinition, + name: currentPAS.currentResolvedAttribute.resolvedName + }; + const attrCtxAddedAttr: CdmAttributeContext = CdmAttributeContext.createChildUnder(projCtx.projectionDirective.resOpt, attrCtxAddedAttrParam); + + // Create a projection attribute state for the included attribute + // We only create projection attribute states for attributes that are not in the exclude list + // Add the current projection attribute state as the previous state of the new projection attribute state + const newPAS: ProjectionAttributeState = new ProjectionAttributeState(projOutputSet.ctx) + newPAS.currentResolvedAttribute = currentPAS.currentResolvedAttribute; + newPAS.previousStateList = [ currentPAS ]; + + projOutputSet.add(newPAS); + } else { + // The current projection attribute state's resolved attribute is in the exclude list + + // Get the attribute name the way it appears in the exclude list + // For our attribute context, we want to use the attribute name the attribute has in the exclude list rather than its current name + const excludeAttributeName: string = topLevelExcludeAttributeNames.get(currentPAS.currentResolvedAttribute.resolvedName); + + // Create a new attribute context for the excluded attribute + const attrCtxExcludedAttrParam: AttributeContextParameters = { + under: attrCtxOpExcludeAttrs, + type: cdmAttributeContextType.attributeDefinition, + name: excludeAttributeName + }; + const attrCtxExcludedAttr: CdmAttributeContext = CdmAttributeContext.createChildUnder(projCtx.projectionDirective.resOpt, attrCtxExcludedAttrParam); + } + } + + return projOutputSet; } } diff --git a/objectModel/TypeScript/Persistence/CdmFolder/E2ERelationshipPersistence.ts b/objectModel/TypeScript/Persistence/CdmFolder/E2ERelationshipPersistence.ts index 898e3b4149..424eaf12c3 100644 --- a/objectModel/TypeScript/Persistence/CdmFolder/E2ERelationshipPersistence.ts +++ b/objectModel/TypeScript/Persistence/CdmFolder/E2ERelationshipPersistence.ts @@ -4,14 +4,17 @@ import { CdmCorpusContext, CdmE2ERelationship, - cdmObjectType + cdmObjectType, + StringUtils } from '../../internal'; import { E2ERelationship } from './types/E2ERelationship'; export class E2ERelationshipPersistence { public static fromData(ctx: CdmCorpusContext, dataObj: E2ERelationship): CdmE2ERelationship { const relationship: CdmE2ERelationship = ctx.corpus.MakeObject(cdmObjectType.e2eRelationshipDef); - relationship.name = dataObj.name; + if (!StringUtils.isNullOrWhiteSpace(dataObj.name)) { + relationship.name = dataObj.name; + } relationship.fromEntity = dataObj.fromEntity; relationship.fromEntityAttribute = dataObj.fromEntityAttribute; relationship.toEntity = dataObj.toEntity; @@ -22,7 +25,7 @@ export class E2ERelationshipPersistence { public static toData(instance: CdmE2ERelationship): E2ERelationship { return { - name: instance.name, + name: !StringUtils.isNullOrWhiteSpace(instance.name) ? instance.name : undefined, fromEntity: instance.fromEntity, fromEntityAttribute: instance.fromEntityAttribute, toEntity: instance.toEntity, diff --git a/objectModel/TypeScript/ResolvedModel/Projections/ProjectionResolutionCommonUtil.ts b/objectModel/TypeScript/ResolvedModel/Projections/ProjectionResolutionCommonUtil.ts index 3b1e08a898..e6981912c2 100644 --- a/objectModel/TypeScript/ResolvedModel/Projections/ProjectionResolutionCommonUtil.ts +++ b/objectModel/TypeScript/ResolvedModel/Projections/ProjectionResolutionCommonUtil.ts @@ -114,20 +114,30 @@ export class ProjectionResolutionCommonUtil { } /** - * Get top node of the projection state tree for non-polymorphic scenarios + * Gets the names of the top-level nodes in the projection state tree (for non-polymorphic scenarios) that match a set of attribute names * @internal */ - public static getTop(projCtx: ProjectionContext, attrName: string): ProjectionAttributeState[] { - let result: SearchResult = new SearchResult(); - for (const top of projCtx.currentAttributeStateSet.values) { - let st: SearchStructure = new SearchStructure(); - st = SearchStructure.buildStructure(top, top, attrName, st, false, 0); - if (st?.result.foundFlag === true) { - result = st.result; + public static getTopList(projCtx: ProjectionContext, attrNames: string[]): Map { + // This dictionary contains a mapping from the top-level (most recent) name of an attribute + // to the attribute name the top-level name was derived from (the name contained in the given list) + const topLevelAttributeNames: Map = new Map(); + + // Iterate through each attribute name in the list and search for their top-level names + for (const attrName of attrNames) { + // Iterate through each projection attribute state in the current set and check if its + // current resolved attribute's name is the top-level name of the current attrName + for (const top of projCtx.currentAttributeStateSet.values) { + let st: SearchStructure = new SearchStructure(); + st = SearchStructure.buildStructure(top, top, attrName, st, false, 0); + // Found the top-level name + if (st?.result.foundFlag === true) { + // Create a mapping from the top-level name of the attribute to the name it has in the given list + topLevelAttributeNames.set(top.currentResolvedAttribute.resolvedName, attrName); + } } } - return result?.top; + return topLevelAttributeNames; } /** diff --git a/objectModel/TypeScript/ResolvedModel/ResolvedAttribute.ts b/objectModel/TypeScript/ResolvedModel/ResolvedAttribute.ts index f65cd34536..727a3cd36c 100644 --- a/objectModel/TypeScript/ResolvedModel/ResolvedAttribute.ts +++ b/objectModel/TypeScript/ResolvedModel/ResolvedAttribute.ts @@ -90,7 +90,7 @@ export class ResolvedAttribute { * @internal */ public resolvedAttributeCount: number; - public insertOrder: number; + public insertOrder: number = 0; public attCtx: CdmAttributeContext; public applierState?: any; public arc: AttributeResolutionContext; diff --git a/objectModel/TypeScript/Storage/ADLSAdapter.ts b/objectModel/TypeScript/Storage/ADLSAdapter.ts index 5944638fd4..48f360ce78 100644 --- a/objectModel/TypeScript/Storage/ADLSAdapter.ts +++ b/objectModel/TypeScript/Storage/ADLSAdapter.ts @@ -9,11 +9,12 @@ import { StorageUtils } from '../Utilities/StorageUtils'; import { NetworkAdapter } from './NetworkAdapter'; import { configObjectType, StorageAdapter } from './StorageAdapter'; -export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { +export class ADLSAdapter extends NetworkAdapter { /** * @internal */ public readonly type: string = 'adls'; + private readonly adlsDefaultTimeout: number = 8000; public get root(): string { return this._root; @@ -38,7 +39,6 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { } public clientId: string; - public locationHint: string; public secret: string; public sharedKey: string; @@ -63,6 +63,7 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { private formattedHostname: string = ''; private subPath: string = ''; private tokenResponse: adal.TokenResponse; + private fileModifiedTimeCache: Map = new Map(); // The ADLS constructor for clientId/secret authentication. constructor( @@ -89,6 +90,8 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { } } + this.timeout = this.adlsDefaultTimeout; + this.adapterPaths = new Map(); this.httpClient = new CdmHttpClient(); } @@ -173,21 +176,37 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { } public async computeLastModifiedTimeAsync(corpusPath: string): Promise { - const adapterPath: string = this.createAdapterPath(corpusPath); - - const request: CdmHttpRequest = await this.buildRequest(adapterPath, 'HEAD'); - - try { - const cdmResponse: CdmHttpResponse = await super.executeRequest(request); - - if (cdmResponse.statusCode === 200) { - // http nodejs lib returns lowercase headers. - // tslint:disable-next-line: no-backbone-get-set-outside-model - return new Date(cdmResponse.responseHeaders.get('last-modified')); + const cachedValue: Date = this.isCacheEnabled() ? this.fileModifiedTimeCache.get(corpusPath) : undefined; + if(cachedValue) { + return cachedValue; + } + else { + + const adapterPath: string = this.createAdapterPath(corpusPath); + + const request: CdmHttpRequest = await this.buildRequest(adapterPath, 'HEAD'); + + try { + const cdmResponse: CdmHttpResponse = await super.executeRequest(request); + + if (cdmResponse.statusCode === 200) { + // http nodejs lib returns lowercase headers. + // tslint:disable-next-line: no-backbone-get-set-outside-model + const lastTimeString: string = cdmResponse.responseHeaders.get('last-modified'); + if(lastTimeString) + { + const lastTime:Date = new Date(); + if(this.isCacheEnabled()) + { + this.fileModifiedTimeCache.set(corpusPath, lastTime); + } + return lastTime; + } + } + } catch (e) { + // We don't have standard logger here, so use one from system diagnostics + console.debug(`ADLS file not found, skipping last modified time calculation for it. Exception: ${e}`); } - } catch (e) { - // We don't have standard logger here, so use one from system diagnostics - console.debug(`ADLS file not found, skipping last modified time calculation for it. Exception: ${e}`); } } @@ -197,7 +216,7 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { } const url: string = `https://${this.hostname}/${this.fileSystem}`; - const directory: string = `${this.subPath}/${folderCorpusPath}`; + const directory: string = `${this.subPath}${folderCorpusPath}`; const request: CdmHttpRequest = await this.buildRequest(`${url}?directory=${directory}&recursive=True&resource=filesystem`, 'GET'); const cdmResponse: CdmHttpResponse = await super.executeRequest(request); @@ -214,7 +233,13 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { const name: string = jObject.name; const nameWithoutSubPath: string = this.subPath.length > 0 && name.startsWith(this.subPath) ? name.substring(this.subPath.length + 1) : name; - result.push(this.formatCorpusPath(nameWithoutSubPath)); + const path: string = this.formatCorpusPath(nameWithoutSubPath); + result.push(path); + + if(jObject.lastModified && this.isCacheEnabled()) + { + this.fileModifiedTimeCache.set(path, new Date(jObject.lastModified)); + } } } @@ -223,7 +248,7 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { } public clearCache(): void { - return; + this.fileModifiedTimeCache.clear(); } public fetchConfig(): string { @@ -375,7 +400,7 @@ export class ADLSAdapter extends NetworkAdapter implements StorageAdapter { // Append canonicalized queries. if (uri.search) { - const queryParameters: string[] = uri.search.split('&'); + const queryParameters: string[] = (uri.search.startsWith('?') ? uri.search.substr(1) : uri.search).split('&'); for (const parameter of queryParameters) { const keyValuePair: string[] = parameter.split('='); diff --git a/objectModel/TypeScript/Storage/CdmStandardsAdapter.ts b/objectModel/TypeScript/Storage/CdmStandardsAdapter.ts index e7f723a9c7..9bfe22fefc 100644 --- a/objectModel/TypeScript/Storage/CdmStandardsAdapter.ts +++ b/objectModel/TypeScript/Storage/CdmStandardsAdapter.ts @@ -8,7 +8,7 @@ import { configObjectType, StorageAdapter } from './StorageAdapter'; /** * An adapter pre-configured to read the standard schema files published by CDM. */ -export class CdmStandardsAdapter extends NetworkAdapter implements StorageAdapter { +export class CdmStandardsAdapter extends NetworkAdapter { private readonly STANDARDS_ENDPOINT = "https://cdm-schema.microsoft.com"; /** * @internal diff --git a/objectModel/TypeScript/Storage/GithubAdapter.ts b/objectModel/TypeScript/Storage/GithubAdapter.ts index 16310be9f9..27099a92e1 100644 --- a/objectModel/TypeScript/Storage/GithubAdapter.ts +++ b/objectModel/TypeScript/Storage/GithubAdapter.ts @@ -3,19 +3,18 @@ import { CdmHttpClient, CdmHttpRequest, CdmHttpResponse } from '../Utilities/Network'; import { NetworkAdapter } from './NetworkAdapter'; -import { configObjectType, StorageAdapter } from './StorageAdapter'; +import { configObjectType } from './StorageAdapter'; /** * @deprecated Please use the CdmStandardsAdapter instead. */ -export class GithubAdapter extends NetworkAdapter implements StorageAdapter { +export class GithubAdapter extends NetworkAdapter { private static readonly ghHost: string = 'raw.githubusercontent.com'; private static readonly ghPath: string = '/Microsoft/CDM/master/schemaDocuments'; /** * @internal */ public readonly type: string = 'github'; - public locationHint: string; private readonly url: string; @@ -47,14 +46,6 @@ export class GithubAdapter extends NetworkAdapter implements StorageAdapter { return cdmHttpResponse.content; } - public canWrite(): boolean { - throw new Error('Method not implemented.'); - } - - public async writeAsync(corpusPath: string, data: string): Promise { - throw new Error('Method not implemented.'); - } - public createAdapterPath(corpusPath: string): string { return `${GithubAdapter.ghRawRoot()}${corpusPath}`; } @@ -69,16 +60,6 @@ export class GithubAdapter extends NetworkAdapter implements StorageAdapter { return undefined; } - public async computeLastModifiedTimeAsync(corpusPath: string): Promise { - return new Date(); - } - - public async fetchAllFilesAsync(currFullPath: string): Promise { - return undefined; - } - - public clearCache(): void {} - public fetchConfig(): string { const resultConfig: configObjectType = { type: this.type diff --git a/objectModel/TypeScript/Storage/LocalAdapter.ts b/objectModel/TypeScript/Storage/LocalAdapter.ts index 83d91434b1..bd3bdb886f 100644 --- a/objectModel/TypeScript/Storage/LocalAdapter.ts +++ b/objectModel/TypeScript/Storage/LocalAdapter.ts @@ -5,7 +5,8 @@ import * as fs from 'fs'; import * as path from 'path'; import * as util from 'util'; import { StorageUtils } from '../Utilities/StorageUtils'; -import { configObjectType, StorageAdapter } from './StorageAdapter'; +import { configObjectType } from './StorageAdapter'; +import { StorageAdapterBase } from './StorageAdapterBase'; let readFile, writeFile, stat, mkdir, readdir; @@ -17,21 +18,20 @@ if (fs.readFile) { readdir = util.promisify(fs.readdir); } -export class LocalAdapter implements StorageAdapter { +export class LocalAdapter extends StorageAdapterBase { public root: string; /** * @internal */ public fullRoot: string; - public locationHint: string; - /** * @internal */ public readonly type: string = 'local'; constructor(root?: string) { + super(); if (root) { this.root = root; this.fullRoot = path.resolve(root); @@ -102,10 +102,6 @@ export class LocalAdapter implements StorageAdapter { return; // signal that we didn't recognize path as one for this adapter } - public clearCache(): void { - return; - } - public async computeLastModifiedTimeAsync(corpusPath: string): Promise { try { const adapterPath: string = this.createAdapterPath(corpusPath); diff --git a/objectModel/TypeScript/Storage/LocalBrowserAdapter.ts b/objectModel/TypeScript/Storage/LocalBrowserAdapter.ts index b8fbf01441..1f260dcc4f 100644 --- a/objectModel/TypeScript/Storage/LocalBrowserAdapter.ts +++ b/objectModel/TypeScript/Storage/LocalBrowserAdapter.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -import { StorageAdapter } from './StorageAdapter'; +import { StorageAdapterBase } from './StorageAdapterBase'; interface FileInfo { name: string; @@ -15,11 +15,12 @@ interface FileInfo { * and then stored in this adapter. Any files that are needed must be loaded from that dialog * and cannot be pulled in in any other way. */ -export class LocalBrowserAdapter implements StorageAdapter { +export class LocalBrowserAdapter extends StorageAdapterBase { private readonly folders: Set = new Set(); private readonly fileMap: Map; constructor(config) { + super(); if (config.fileMap) { this.fileMap = config.fileMap; for (let path of this.fileMap.keys()) { @@ -69,38 +70,11 @@ export class LocalBrowserAdapter implements StorageAdapter { return undefined; } - public canWrite(): boolean { - return false; - } - public async dirExists(folderPath: string): Promise { return this.folders.has(folderPath); } - public createAdapterPath(corpusPath: string): string { - return corpusPath; - } - - public createCorpusPath(adapterPath: string): string { - return adapterPath; - } - - public clearCache(): void { - return; - } - - public async computeLastModifiedTimeAsync(adapterPath: string): Promise { - return undefined; - } - public async fetchAllFilesAsync(folderCorpusPath: string): Promise { return Array.from(this.fileMap.keys()); } - - public fetchConfig(): string { - return undefined; - } - - public updateConfig(config: string): void { - } } diff --git a/objectModel/TypeScript/Storage/NetworkAdapter.ts b/objectModel/TypeScript/Storage/NetworkAdapter.ts index dbcca4f58f..d8a3ce076d 100644 --- a/objectModel/TypeScript/Storage/NetworkAdapter.ts +++ b/objectModel/TypeScript/Storage/NetworkAdapter.ts @@ -4,6 +4,7 @@ import { CdmHttpClient, CdmHttpRequest, CdmHttpResponse } from '../Utilities/Network'; import { configObjectType } from './StorageAdapter'; import { StorageAdapterConfigCallback } from './StorageAdapterConfigCallback'; +import { StorageAdapterBase } from './StorageAdapterBase' /** * Network adapter is an abstract class that contains logic for adapters dealing with data across network. @@ -13,7 +14,7 @@ import { StorageAdapterConfigCallback } from './StorageAdapterConfigCallback'; * If a user doesn't specify timeout, maximutimeout or number of retries in the config under 'httpConfig' property * default values will be used as specified in the class. */ -export abstract class NetworkAdapter { +export abstract class NetworkAdapter extends StorageAdapterBase { // Use some default values in the case a user doesn't set them up. protected readonly defaultTimeout: number = 5000; @@ -23,33 +24,33 @@ export abstract class NetworkAdapter { protected httpClient: CdmHttpClient; - protected _timeout: number; - protected _maximumTimeout: number; - protected _numberOfRetries: number; + protected _timeout: number = this.defaultTimeout; + protected _maximumTimeout: number = this.defaultMaximumTimeout; + protected _numberOfRetries: number = this.defaultNumberOfRetries; protected _waitTimeCallback: StorageAdapterConfigCallback; public get timeout(): number { - return this._timeout !== undefined ? this._timeout : this.defaultTimeout; + return this._timeout; } public set timeout(val: number) { - this._timeout = val; + this._timeout = (val === undefined || val < 0) ? this.defaultTimeout : val; } public get maximumTimeout(): number { - return this._maximumTimeout !== undefined ? this._maximumTimeout : this.defaultMaximumTimeout; + return this._maximumTimeout; } public set maximumTimeout(val: number) { - this._maximumTimeout = val; + this._maximumTimeout = (val === undefined || val < 0) ? this.defaultMaximumTimeout : val; } public get numberOfRetries(): number { - return this._numberOfRetries !== undefined ? this._numberOfRetries : this.defaultNumberOfRetries; + return this._numberOfRetries; } public set numberOfRetries(val: number) { - this._numberOfRetries = val; + this._numberOfRetries = (val === undefined || val < 0) ? this.defaultNumberOfRetries : val; } public get waitTimeCallback(): StorageAdapterConfigCallback { diff --git a/objectModel/TypeScript/Storage/RemoteAdapter.ts b/objectModel/TypeScript/Storage/RemoteAdapter.ts index e3ee1d9053..69bffb5583 100644 --- a/objectModel/TypeScript/Storage/RemoteAdapter.ts +++ b/objectModel/TypeScript/Storage/RemoteAdapter.ts @@ -12,12 +12,11 @@ interface HostInfo { path?: string; } -export class RemoteAdapter extends NetworkAdapter implements StorageAdapter { +export class RemoteAdapter extends NetworkAdapter { /** * @internal */ public readonly type: string = 'remote'; - public locationHint: string; private sources: { [key: string]: string } = {}; private sourcesById: { [key: string]: { protocol: string; host: string } } = {}; @@ -43,10 +42,6 @@ export class RemoteAdapter extends NetworkAdapter implements StorageAdapter { } } - public async writeAsync(corpusPath: string, data: string): Promise { - throw new Error('Method not implemented.'); - } - public clearCache(): void { this.sources = {}; this.sourcesById = {}; @@ -66,10 +61,6 @@ export class RemoteAdapter extends NetworkAdapter implements StorageAdapter { return cdmHttpResponse.content.toString(); } - public canWrite(): boolean { - return false; - } - public createAdapterPath(corpusPath: string): string { const urlConfig: HostInfo = this.getUrlConfig(corpusPath); @@ -94,14 +85,6 @@ export class RemoteAdapter extends NetworkAdapter implements StorageAdapter { return `/${hostInfo.key}${path}`; } - public async computeLastModifiedTimeAsync(corpusPath: string): Promise { - return new Date(); - } - - public async fetchAllFilesAsync(currFullPath: string): Promise { - return undefined; - } - private getGuid(): string { let guid: string; // make sure that there is no collision of keys. diff --git a/objectModel/TypeScript/Storage/ResourceAdapter.ts b/objectModel/TypeScript/Storage/ResourceAdapter.ts index 5759cc6a37..768476d197 100644 --- a/objectModel/TypeScript/Storage/ResourceAdapter.ts +++ b/objectModel/TypeScript/Storage/ResourceAdapter.ts @@ -4,7 +4,7 @@ import * as fs from 'fs'; import * as path from 'path'; import * as util from 'util'; -import { StorageAdapter } from './StorageAdapter'; +import { StorageAdapterBase } from './StorageAdapterBase'; let readFile; @@ -12,13 +12,14 @@ if (fs.readFile) { readFile = util.promisify(fs.readFile); } -export class ResourceAdapter implements StorageAdapter { +export class ResourceAdapter extends StorageAdapterBase { private readonly ROOT: string = 'Microsoft.CommonDataModel.ObjectModel.Resources'; private resourcesPath: string; public locationHint: string; constructor() { + super(); this.resourcesPath = path.join(__dirname, '..', 'Resources'); } @@ -40,14 +41,6 @@ export class ResourceAdapter implements StorageAdapter { } } - public canWrite(): boolean { - return false; - } - - public async writeAsync(corpusPath: string, data: string): Promise { - throw new Error('Method not implemented.'); - } - public createAdapterPath(corpusPath: string): string { if (!corpusPath) { return undefined; @@ -63,24 +56,4 @@ export class ResourceAdapter implements StorageAdapter { return adapterPath.substring(this.ROOT.length); } - - public clearCache(): void { - return; - } - - public async computeLastModifiedTimeAsync(corpusPath: string): Promise { - return new Date(); - } - - public async fetchAllFilesAsync(folderCorpusPath: string): Promise { - return undefined; - } - - public fetchConfig(): string { - throw new Error('Method not implemented.'); - } - - public updateConfig(config: string): void { - throw new Error('Method not implemented.'); - } } diff --git a/objectModel/TypeScript/Storage/StorageAdapter.ts b/objectModel/TypeScript/Storage/StorageAdapter.ts index 6023a8fa71..21b8af4833 100644 --- a/objectModel/TypeScript/Storage/StorageAdapter.ts +++ b/objectModel/TypeScript/Storage/StorageAdapter.ts @@ -1,6 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. +/** + * The CDM Def interface for an adapter object that can read and write documents from a data source. + * This was the previous method for a user to create their own storage adapter. The current method is + * to extend the StorageAdapterBase class. + * @deprecated Please use the StorageAdapterBase class instead. + */ export interface StorageAdapter { /** * The location hint, gives a hint to the reader app about the diff --git a/objectModel/TypeScript/Storage/StorageAdapterBase.ts b/objectModel/TypeScript/Storage/StorageAdapterBase.ts new file mode 100644 index 0000000000..4d35d463c3 --- /dev/null +++ b/objectModel/TypeScript/Storage/StorageAdapterBase.ts @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +import { configObjectType, StorageAdapter } from './StorageAdapter'; + +/** + * The CDM base class for an adapter object that can read and write documents from a data source. + * This allows a user flexibility to interact with data from multiple sources without having + * to manually copy data to the location where the Object Model is running. By deriving from this + * this class, users can to create their own adapter if needed. + */ +export abstract class StorageAdapterBase implements StorageAdapter { + /** + * The location hint, gives a hint to the reader app about the + * location where the adapter implementation (Nuget, NPM...) can be obtained. + */ + public locationHint: string; + + /** + * Returns true if the adapter can read data, false otherwise. + */ + public canRead(): boolean { + return false; + } + + /** + * Returns true if the adapter can write data, false otherwise. + */ + public canWrite(): boolean { + return false; + } + + /** + * Returns JSON data that exists at the path as a JSON string + */ + public async readAsync(corpusPath: string): Promise { + throw new Error('Method not implemented.'); + } + + /** + * writes the object data to the specified document path + */ + public async writeAsync(corpusPath: string, data: string): Promise { + throw new Error('Method not implemented.'); + } + /** + * converts a corpus path into a path in the domain of this adapter + */ + public createAdapterPath(corpusPath: string): string { + return corpusPath; + } + + /** + * converts a path in the domain of this adapter into a corpus path + */ + public createCorpusPath(adapterPath: string): string { + return adapterPath; + } + + /** + * Returns the last modified time of the file accessible by the adapter + */ + public async computeLastModifiedTimeAsync(corpusPath: string): Promise { + return new Date(); + } + + /** + * Returns a list corpus paths to all files and folders at or under the + * provided corpus path to a folder + */ + public async fetchAllFilesAsync(folderCorpusPath: string): Promise { + return undefined; + } + + /** + * Applies the JSON config, has to be called after default constructor. + */ + public updateConfig(config: string): void { + } + + /** + * Constructs the config. + * Reeturns the object, representing the constructed config for that adapter. + */ + public fetchConfig(): string { + return "{}"; + } + + /** + * Empties the cache of files and folders if the storage adapter uses a cache + */ + public clearCache(): void { + } + + /** + * If true, inherited classes should cache and reuse file query results if they support caching + */ + protected isCacheEnabled(): boolean { + return this.activeCacheContexts.size > 0 + } + + /** + * Calling this function tells the adapter it may cache and reuse file query results, as opposed to + * reissuing queries to the underlying file storage, which may be a costly operation. This adapter is + * allowed to cache and reuse queries until the object returned by this function has its dispose + * function called. If createFileQueryCacheContext is called multiple times, caching is allowed until + * all objects returned have thier dispose function called. Intended usage is for callers to wrap a + * set of operations that should use caching with a try-finally block and call dispose inside finally. + */ + public createFileQueryCacheContext(): StorageAdapterCacheContext { + let context: StorageAdapterCacheContext = new StorageAdapterCacheContext(this.createDisposeAdapterContextFunc(this)); + this.activeCacheContexts.add(context); + return context; + } + + private activeCacheContexts: Set = new Set(); + + /** + * This function exists so that the StorageAdapterCacheContext's dispose function can remove itself + * from the StorageAdapter's activeCacheContexts without needing to make activeCacheContexts public + * @param adapter the adapter this function is created for + */ + private createDisposeAdapterContextFunc(adapter: StorageAdapterBase): { (context: StorageAdapterCacheContext): void } { + let func: { (context: StorageAdapterCacheContext): void } = + (context: StorageAdapterCacheContext): void => { + this.activeCacheContexts.delete(context); + if (!this.isCacheEnabled()) { + this.clearCache(); + } + } + return func; + } +} + +/** + * This class is used to track requests to enable file query caching. Each time a request to enable + * caching is made an instance of this class is created and added the the StorageAdapter's activeCacheContexts + * set. When dispose is called, this object is removed from that set. Whenever any items are in the adapter's + * activeCacheContexts, caching is enabled. + */ +export class StorageAdapterCacheContext { + private disposeFunc: { (StorageAdapterCacheContext): void }; + + constructor(dispose: { (StorageAdapterCacheContext): void }) { + this.disposeFunc = dispose; + } + + public dispose(): void { + this.disposeFunc(this); + } +} diff --git a/objectModel/TypeScript/Utilities/Network/CdmHttpClient.ts b/objectModel/TypeScript/Utilities/Network/CdmHttpClient.ts index a09fb2e7ac..4e558b752a 100644 --- a/objectModel/TypeScript/Utilities/Network/CdmHttpClient.ts +++ b/objectModel/TypeScript/Utilities/Network/CdmHttpClient.ts @@ -83,7 +83,7 @@ export class CdmHttpClient { cdmRequest.headers.set(key, value); }); - return this.raceAsyncTaskAgainstTimeout(cdmRequest.maximumTimeout, this.SendAsyncHelper(cdmRequest, callback)); + return this.raceAsyncTaskAgainstTimeout(cdmRequest.maximumTimeout, this.SendAsyncHelper(cdmRequest, callback), 'Maximum timeout exceeded.'); } /** @@ -128,7 +128,8 @@ export class CdmHttpClient { try { response = await this.raceAsyncTaskAgainstTimeout( cdmRequest.timeout, - this.httpHandler(fullUrl, cdmRequest.method, cdmRequest.content, outgoingHeaders)); + this.httpHandler(fullUrl, cdmRequest.method, cdmRequest.content, outgoingHeaders), + 'Request timeout.'); } catch (err) { hasFailed = true; @@ -186,12 +187,12 @@ export class CdmHttpClient { * @param {Promise} promise The promise that is competing against the timeout promise. * @return {Promise} which one the race. */ - private async raceAsyncTaskAgainstTimeout(ms: number, promise: Promise): Promise { + private async raceAsyncTaskAgainstTimeout(ms: number, promise: Promise, errorMessage: string): Promise { let timeout; const timeoutPromise = new Promise((resolve, reject) => { timeout = setTimeout(() => { clearTimeout(timeout); - reject('Request timeout.'); + reject(errorMessage); }, ms); }); diff --git a/objectModel/TypeScript/Utilities/StringUtils.ts b/objectModel/TypeScript/Utilities/StringUtils.ts index b32d7e649b..d3da82639f 100644 --- a/objectModel/TypeScript/Utilities/StringUtils.ts +++ b/objectModel/TypeScript/Utilities/StringUtils.ts @@ -9,4 +9,8 @@ export class StringUtils { public static equalsWithIgnoreCase(strA: string, strB: string): boolean { return strA.toLowerCase() === strB.toLowerCase(); } + + public static isNullOrWhiteSpace(s: string) : boolean { + return s === null || s === undefined || s.trim() === ''; + } } diff --git a/objectModel/TypeScript/Utilities/resolveOptions.ts b/objectModel/TypeScript/Utilities/resolveOptions.ts index eb578bedf0..20fafc2220 100644 --- a/objectModel/TypeScript/Utilities/resolveOptions.ts +++ b/objectModel/TypeScript/Utilities/resolveOptions.ts @@ -13,6 +13,7 @@ export class resolveOptions { public wrtDoc?: CdmDocumentDefinition; // the document to use as a point of reference when resolving relative paths and symbol names. public directives?: AttributeResolutionDirectiveSet; // a set of string flags that direct how attribute resolving traits behave public shallowValidation?: boolean; // when enabled, errors regarding references that are unable to be resolved or loaded are logged as warnings instead + public strictValidation: boolean = true; // when enabled, all the imports will be loaded and the references checked otherwise will be delayed until the symbols are required. public resolvedAttributeLimit?: number = 4000; // the limit for the number of resolved attributes allowed per entity. if the number is exceeded, the resolution will fail /** diff --git a/objectModel/TypeScript/__test__/Cdm/Corpus.test.ts b/objectModel/TypeScript/__test__/Cdm/Corpus.test.ts index 82602275c2..8dded1a78e 100644 --- a/objectModel/TypeScript/__test__/Cdm/Corpus.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Corpus.test.ts @@ -4,6 +4,7 @@ import { AttributeResolutionDirectiveSet, CdmCorpusDefinition, + CdmDocumentDefinition, CdmEntityDefinition, cdmStatusLevel, resolveOptions @@ -21,14 +22,14 @@ describe('Cdm/CdmCorpusDefinition', () => { * When resolving symbolEntity with respect to wrtEntity, the symbol fromEntity should be found correctly. */ it('TestResolveSymbolReference', async (done) => { - const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, "TestResolveSymbolReference"); + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestResolveSymbolReference'); corpus.setEventCallback((level, msg) => { done.fail(new Error(msg)); }, cdmStatusLevel.warning); - const wrtEntity = await corpus.fetchObjectAsync("local:/wrtEntity.cdm.json/wrtEntity"); + const wrtEntity = await corpus.fetchObjectAsync('local:/wrtEntity.cdm.json/wrtEntity'); const resOpt = new resolveOptions(wrtEntity, new AttributeResolutionDirectiveSet()); - await wrtEntity.createResolvedEntityAsync("NewEntity", resOpt); + await wrtEntity.createResolvedEntityAsync('NewEntity', resOpt); done(); }); @@ -36,13 +37,74 @@ describe('Cdm/CdmCorpusDefinition', () => { * Tests if ComputeLastModifiedTimeAsync doesn't log errors related to reference validation. */ it('testComputeLastModifiedTimeAsync', async (done) => { - const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, "TestComputeLastModifiedTimeAsync"); + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestComputeLastModifiedTimeAsync'); corpus.setEventCallback((level, msg) => { done.fail(new Error(msg)); }, cdmStatusLevel.error); - await corpus.computeLastModifiedTimeAsync("local:/default.manifest.cdm.json"); + await corpus.computeLastModifiedTimeAsync('local:/default.manifest.cdm.json'); + done(); + }); + + /** + * Tests the FetchObjectAsync function with the StrictValidation off. + */ + it('testStrictValidationOff', async (done) => { + const corpus = testHelper.getLocalCorpus(testsSubpath, 'TestStrictValidation'); + corpus.setEventCallback((level, msg) => { + // when the strict validation is disabled, there should be no reference validation. + // no error should be logged. + done.fail(new Error(msg)); + }, cdmStatusLevel.warning); + + // load with strict validation disabled. + const resOpt = new resolveOptions(); + resOpt.strictValidation = false; + await corpus.fetchObjectAsync('local:/doc.cdm.json', null, resOpt); + + done(); + }); + + /** + * Tests the FetchObjectAsync function with the StrictValidation on. + */ + it('testStrictValidationOn', async (done) => { + let errorCount = 0; + let corpus = testHelper.getLocalCorpus(testsSubpath, 'TestStrictValidation'); + corpus.setEventCallback((level, msg) => { + if (msg.indexOf('Unable to resolve the reference') != -1) { + errorCount++; + } else { + done.fail(new Error(msg)); + } + }, cdmStatusLevel.error); + + // load with strict validation. + let resOpt = new resolveOptions(); + resOpt.strictValidation = true; + await corpus.fetchObjectAsync('local:/doc.cdm.json', null, resOpt); + expect(errorCount) + .toEqual(1); + + errorCount = 0; + corpus = testHelper.getLocalCorpus(testsSubpath, 'TestStrictValidation'); + corpus.setEventCallback((level, msg) => { + if (level == cdmStatusLevel.warning && msg.indexOf('Unable to resolve the reference') != -1) { + errorCount++; + } else { + done.fail(new Error(msg)); + } + }, cdmStatusLevel.warning); + + // load with strict validation and shallow validation. + resOpt = new resolveOptions(); + resOpt.strictValidation = true; + resOpt.shallowValidation = true; + await corpus.fetchObjectAsync('local:/doc.cdm.json', null, resOpt); + expect(errorCount) + .toEqual(1); + done(); }); }); diff --git a/objectModel/TypeScript/__test__/Cdm/DocumentDefinition.test.ts b/objectModel/TypeScript/__test__/Cdm/DocumentDefinition.test.ts index 994979574e..0bd6794d1c 100644 --- a/objectModel/TypeScript/__test__/Cdm/DocumentDefinition.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/DocumentDefinition.test.ts @@ -46,8 +46,8 @@ describe('Cdm/CdmDocumentDefinition', () => { docC.imports.push('B.cdm.json'); // forces docB to be indexed first. - await docB.indexIfNeeded(new resolveOptions()); - await docA.indexIfNeeded(new resolveOptions()); + await docB.indexIfNeeded(new resolveOptions(), true); + await docA.indexIfNeeded(new resolveOptions(), true); // should contain A, B and C. expect(docA.importPriorities.importPriority.size) @@ -87,8 +87,8 @@ describe('Cdm/CdmDocumentDefinition', () => { folder.documents.push(docD); docD.imports.push('C.cdm.json'); - // indexIfNeeded will internally call prioritizeImports on every document. - await docA.indexIfNeeded(new resolveOptions()); + // indexIfNeeded will internally call prioritizeImports on every documen, truet. + await docA.indexIfNeeded(new resolveOptions(), true); expect(docA.importPriorities.importPriority.size) .toBe(4); @@ -97,15 +97,15 @@ describe('Cdm/CdmDocumentDefinition', () => { markDocumentsToIndex(folder.documents); // force docC to be indexed first, so the priorityList will be read from the cache this time. - await docC.indexIfNeeded(new resolveOptions()); - await docA.indexIfNeeded(new resolveOptions()); + await docC.indexIfNeeded(new resolveOptions(), true); + await docA.indexIfNeeded(new resolveOptions(), true); expect(docA.importPriorities.importPriority.size) .toBe(4); // indexes the rest of the documents. - await docB.indexIfNeeded(new resolveOptions()); - await docD.indexIfNeeded(new resolveOptions()); + await docB.indexIfNeeded(new resolveOptions(), true); + await docD.indexIfNeeded(new resolveOptions(), true); expect(docA.importPriorities.hasCircularImport) .toBe(false); @@ -136,8 +136,8 @@ describe('Cdm/CdmDocumentDefinition', () => { folder.documents.push(docC); // forces docB to be indexed first, so the priorityList will be read from the cache this time. - await docB.indexIfNeeded(new resolveOptions(docB)); - await docA.indexIfNeeded(new resolveOptions(docA)); + await docB.indexIfNeeded(new resolveOptions(docB), true); + await docA.indexIfNeeded(new resolveOptions(docA), true); // should only contain docA and docC, docB should be excluded. expect(docA.importPriorities.importPriority.size) diff --git a/objectModel/TypeScript/__test__/Cdm/Imports.test.ts b/objectModel/TypeScript/__test__/Cdm/Imports.test.ts index 3c9b44399e..7deeb8e5ee 100644 --- a/objectModel/TypeScript/__test__/Cdm/Imports.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Imports.test.ts @@ -3,7 +3,7 @@ import { CdmDocumentDefinition } from '../../Cdm/CdmDocumentDefinition'; import { CdmManifestDefinition } from '../../Cdm/CdmManifestDefinition'; -import { CdmCorpusDefinition, cdmStatusLevel, StorageAdapter } from '../../internal'; +import { CdmCorpusDefinition, cdmStatusLevel, resolveOptions, StorageAdapter } from '../../internal'; import { LocalAdapter } from '../../Storage'; import { testHelper } from '../testHelper'; @@ -20,8 +20,10 @@ describe('Cdm/ImportsTest', () => { it('TestEntityWithMissingImport', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestEntityWithMissingImport'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; - const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/missingImport.cdm.json'); + const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/missingImport.cdm.json', null, resOpt); expect(doc) .not .toBeUndefined(); @@ -39,8 +41,10 @@ describe('Cdm/ImportsTest', () => { it('TestEntityWithMissingNestedImportsAsync', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestEntityWithMissingNestedImportsAsync'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; - const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/missingNestedImport.cdm.json'); + const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/missingNestedImport.cdm.json', null, resOpt); expect(doc) .not .toBeUndefined(); @@ -62,8 +66,11 @@ describe('Cdm/ImportsTest', () => { it('TestEntityWithSameImportsAsync', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestEntityWithSameImportsAsync'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; - const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/multipleImports.cdm.json'); + + const doc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('local:/multipleImports.cdm.json', null, resOpt); expect(doc) .not .toBeUndefined(); @@ -106,15 +113,17 @@ describe('Cdm/ImportsTest', () => { it('TestLoadingSameImportsAsync', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestLoadingSameImportsAsync'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; - const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json'); + const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json', null, resOpt); expect(mainDoc) .not .toBeUndefined(); expect(mainDoc.imports.length) .toBe(2); - const firstImport: CdmDocumentDefinition = (mainDoc.imports.allItems[0]).document; - const secondImport: CdmDocumentDefinition = (mainDoc.imports.allItems[1]).document; + const firstImport: CdmDocumentDefinition = mainDoc.imports.allItems[0].document; + const secondImport: CdmDocumentDefinition = mainDoc.imports.allItems[1].document; // since these two imports are loaded asyncronously, we need to make sure that // the import that they share (targetImport) was loaded, and that the @@ -136,8 +145,10 @@ describe('Cdm/ImportsTest', () => { it('TestLoadingSameMissingImportsAsync', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestLoadingSameMissingImportsAsync'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; - const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json'); + const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json', null, resOpt); expect(mainDoc) .not .toBeUndefined(); @@ -165,9 +176,11 @@ describe('Cdm/ImportsTest', () => { it('TestLoadingAlreadyPresentImportsAsync', async () => { const localAdapter: LocalAdapter = createStorageAdapterForTest('TestLoadingAlreadyPresentImportsAsync'); const cdmCorpus: CdmCorpusDefinition = createTestCorpus(localAdapter); + const resOpt = new resolveOptions(); + resOpt.strictValidation = true; // load the first doc - const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json'); + const mainDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('mainEntity.cdm.json', null, resOpt); expect(mainDoc) .not .toBeUndefined(); @@ -180,7 +193,7 @@ describe('Cdm/ImportsTest', () => { // now load the second doc, which uses the same import // the import should not be loaded again, it should be the same object - const secondDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('secondEntity.cdm.json'); + const secondDoc: CdmDocumentDefinition = await cdmCorpus.fetchObjectAsync('secondEntity.cdm.json', null, resOpt); expect(secondDoc) .not .toBeUndefined(); diff --git a/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionExclude.test.ts b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionExclude.test.ts new file mode 100644 index 0000000000..4d573842c5 --- /dev/null +++ b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionExclude.test.ts @@ -0,0 +1,937 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +import { + AttributeResolutionDirectiveSet, + CdmAttributeGroupDefinition, + CdmAttributeGroupReference, + CdmCorpusDefinition, + CdmDataTypeReference, + CdmDocumentDefinition, + CdmEntityAttributeDefinition, + CdmEntityDefinition, + CdmEntityReference, + CdmFolderDefinition, + cdmObjectType, + CdmOperationExcludeAttributes, + CdmProjection, + CdmTypeAttributeDefinition, + resolveOptions +} from '../../../internal'; +import { LocalAdapter } from '../../../Storage'; +import { testHelper } from '../../testHelper'; +import { testUtils } from '../../testUtils'; +import { AttributeContextUtil } from './AttributeContextUtil'; + +/** + * A test class for testing the ExcludeAttributes operation in a projection as well as SelectsSomeAvoidNames in a resolution guidance + */ +describe('Cdm/Projection/ProjectionExcludeTest', () => { + /** + * All possible combinations of the different resolution directives + */ + const resOptsCombinations: string[][] = [ + [], + ['referenceOnly'], + ['normalized'], + ['structured'], + ['referenceOnly', 'normalized'], + ['referenceOnly', 'structured'], + ['normalized', 'structured'], + ['referenceOnly', 'normalized', 'structured'] + ]; + + /** + * Path to foundations + */ + const foundationJsonPath: string = 'cdm:/foundations.cdm.json'; + + /** + * The path between TestDataPath and TestName. + */ + const testsSubpath: string = 'Cdm/Projection/TestProjectionExclude'; + + /** + * Test for creating a projection with an ExcludeAttributes operation on an entity attribute using the object model + */ + it('TestEntityAttributeProjUsingObjectModel', async () => { + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestEntityAttributeProjUsingObjectModel'); + corpus.storage.mount('local', new LocalAdapter(testHelper.getActualOutputFolderPath(testsSubpath, 'TestEntityAttributeProjUsingObjectModel'))); + const localRoot: CdmFolderDefinition = corpus.storage.fetchRootFolder('local'); + + // Create an entity + const entity: CdmEntityDefinition = createEntity(corpus, localRoot); + + // Create a projection + const projection: CdmProjection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + const excludeAttrsOp: CdmOperationExcludeAttributes = corpus.MakeObject(cdmObjectType.operationExcludeAttributesDef); + excludeAttrsOp.excludeAttributes.push('id'); + excludeAttrsOp.excludeAttributes.push('date'); + projection.operations.push(excludeAttrsOp); + + // Create an entity reference to hold this projection + const projectionEntityRef: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionEntityRef.explicitReference = projection; + + // Create an entity attribute that contains this projection and add this to the entity + const entityAttribute: CdmEntityAttributeDefinition = corpus.MakeObject(cdmObjectType.entityAttributeDef, 'TestEntityAttribute'); + entityAttribute.entity = projectionEntityRef; + entity.attributes.push(entityAttribute); + + // Resolve the entity + const resolvedEntity: CdmEntityDefinition = await entity.createResolvedEntityAsync(`Resolved_${entity.entityName}.cdm.json`, undefined, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ['id', 'name', 'value', 'date'] + // Excluded attributes: ['id', 'date'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('value'); + }); + + /** + * Test for creating a projection with an ExcludeAttributes operation on an entity definition using the object model + */ + it('TestEntityProjUsingObjectModel', async () => { + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestEntityProjUsingObjectModel'); + corpus.storage.mount('local', new LocalAdapter(testHelper.getActualOutputFolderPath(testsSubpath, 'TestEntityProjUsingObjectModel'))); + const localRoot: CdmFolderDefinition = corpus.storage.fetchRootFolder('local'); + + // Create an entity + const entity: CdmEntityDefinition = createEntity(corpus, localRoot); + + // Create a projection + const projection: CdmProjection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + const excludeAttrsOp: CdmOperationExcludeAttributes = corpus.MakeObject(cdmObjectType.operationExcludeAttributesDef); + excludeAttrsOp.excludeAttributes.push('name'); + excludeAttrsOp.excludeAttributes.push('value'); + projection.operations.push(excludeAttrsOp); + + // Create an entity reference to hold this projection + const projectionEntityRef: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionEntityRef.explicitReference = projection; + + // Set the entity's ExtendEntity to be the projection + entity.extendsEntity = projectionEntityRef; + + // Resolve the entity + const resolvedEntity: CdmEntityDefinition = await entity.createResolvedEntityAsync(`Resolved_${entity.entityName}.cdm.json`, undefined, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ['id', 'name', 'value', 'date'] + // Excluded attributes: ['name', 'value'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('id'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('date'); + }); + + /** + * Test for creating nested projections with ExcludeAttributes operations using the object model + */ + it ('TestNestedProjUsingObjectModel', async () => { + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestNestedProjUsingObjectModel'); + corpus.storage.mount('local', new LocalAdapter(testHelper.getActualOutputFolderPath(testsSubpath, 'TestNestedProjUsingObjectModel'))); + const localRoot: CdmFolderDefinition = corpus.storage.fetchRootFolder('local'); + + // Create an entity + const entity: CdmEntityDefinition = createEntity(corpus, localRoot); + + // Create a projection + const projection: CdmProjection = createProjection(corpus, localRoot); + + // Create an ExcludeAttributes operation + const excludeAttrsOp: CdmOperationExcludeAttributes = corpus.MakeObject(cdmObjectType.operationExcludeAttributesDef); + excludeAttrsOp.excludeAttributes.push('id'); + excludeAttrsOp.excludeAttributes.push('date'); + projection.operations.push(excludeAttrsOp); + + // Create an entity reference to hold this projection + const projectionEntityRef: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionEntityRef.explicitReference = projection; + + // Create another projection that uses the previous projection as its source + const projection2: CdmProjection = corpus.MakeObject(cdmObjectType.projectionDef); + projection2.source = projectionEntityRef; + + // Create an ExcludeAttributes operation + const excludeAttrsOp2: CdmOperationExcludeAttributes = corpus.MakeObject(cdmObjectType.operationExcludeAttributesDef); + excludeAttrsOp2.excludeAttributes.push('value'); + projection2.operations.push(excludeAttrsOp2); + + // Create an entity reference to hold this projection + const projectionEntityRef2: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionEntityRef2.explicitReference = projection2; + + // Create an entity attribute that contains this projection and add this to the entity + const entityAttribute: CdmEntityAttributeDefinition = corpus.MakeObject(cdmObjectType.entityAttributeDef, 'TestEntityAttribute'); + entityAttribute.entity = projectionEntityRef2; + entity.attributes.push(entityAttribute); + + // Resolve the entity + const resolvedEntity: CdmEntityDefinition = await entity.createResolvedEntityAsync(`Resolved_${entity.entityName}.cdm.json`, undefined, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operations + // Original set of attributes: ['id', 'name', 'value', 'date'] + // Excluded attributes: ['id', 'date'], ['value'] + expect(resolvedEntity.attributes.length) + .toEqual(1); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + }); + + /** + * Test for creating a projection with an ExcludeAttributes operation and a condition using the object model + */ + it('TestConditionalProjUsingObjectModel', async () => { + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestConditionalProjUsingObjectModel'); + corpus.storage.mount('local', new LocalAdapter(testHelper.getActualOutputFolderPath(testsSubpath, 'TestConditionalProjUsingObjectModel'))); + const localRoot: CdmFolderDefinition = corpus.storage.fetchRootFolder('local'); + + // Create an entity + const entity: CdmEntityDefinition = createEntity(corpus, localRoot); + + // Create a projection with a condition that states the operation should only execute when the resolution directive is 'referenceOnly' + const projection: CdmProjection = createProjection(corpus, localRoot); + projection.condition = 'referenceOnly==true'; + + // Create an ExcludeAttributes operation + const excludeAttrsOp: CdmOperationExcludeAttributes = corpus.MakeObject(cdmObjectType.operationExcludeAttributesDef); + excludeAttrsOp.excludeAttributes.push('id'); + excludeAttrsOp.excludeAttributes.push('date'); + projection.operations.push(excludeAttrsOp); + + // Create an entity reference to hold this projection + const projectionEntityRef: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionEntityRef.explicitReference = projection; + + // Create an entity attribute that contains this projection and add this to the entity + const entityAttribute: CdmEntityAttributeDefinition = corpus.MakeObject(cdmObjectType.entityAttributeDef, 'TestEntityAttribute'); + entityAttribute.entity = projectionEntityRef; + entity.attributes.push(entityAttribute); + + // Create resolution options with the 'referenceOnly' directive + const resOpt: resolveOptions = new resolveOptions(entity.inDocument); + resOpt.directives = new AttributeResolutionDirectiveSet(new Set(['referenceOnly'])); + + // Resolve the entity with 'referenceOnly' + const resolvedEntityWithReferenceOnly: CdmEntityDefinition = await entity.createResolvedEntityAsync(`Resolved_${entity.entityName}.cdm.json`, resOpt, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ['id', 'name', 'value', 'date'] + // Excluded attributes: ['id', 'date'] + expect(resolvedEntityWithReferenceOnly.attributes.length) + .toEqual(2); + expect((resolvedEntityWithReferenceOnly.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntityWithReferenceOnly.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('value'); + + // Now resolve the entity with the 'structured' directive + resOpt.directives = new AttributeResolutionDirectiveSet(new Set(['structured'])); + const resolvedEntityWithStructured: CdmEntityDefinition = await entity.createResolvedEntityAsync(`Resolved_${entity.entityName}.cdm.json`, resOpt, localRoot); + + // Verify correctness of the resolved attributes after running the ExcludeAttributes operation + // Original set of attributes: ['id', 'name', 'value', 'date'] + // Excluded attributes: none, condition was false + expect(resolvedEntityWithStructured.attributes.length) + .toEqual(4); + expect((resolvedEntityWithStructured.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('id'); + expect((resolvedEntityWithStructured.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntityWithStructured.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('value'); + expect((resolvedEntityWithStructured.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('date'); + }); + + /** + * ExcludeAttributes on an entity attribute + */ + it('TestExcludeAttributes', async () => { + const testName: string = 'TestExcludeAttributes'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + }); + + /** + * SelectsSomeAvoidNames on an entity attribute + */ + it('TestSSAN', async () => { + const testName: string = 'TestSSAN'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['PersonInfoName', 'PersonInfoAge', 'PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + // Excluded attributes: ['PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('PersonInfoName'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('PersonInfoAge'); + }); + + /** + * SelectsSomeAvoidNames on an entity attribute that has renameFormat = "{m}" + */ + it('TestSSANRename', async () => { + const testName: string = 'TestSSANRename'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + }); + + /** + * A nested ExcludeAttributes operation in a single projection + */ + it('TestSingleNestedProj', async () => { + const testName: string = 'TestSingleNestedProj'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + }); + + /** + * Nested projections with ExcludeAttributes + */ + it('TestNestedProj', async () => { + const testName: string = 'TestNestedProj'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'], ['age'] + expect(resolvedEntity.attributes.length) + .toEqual(1); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + }); + + /** + * Multiple ExcludeAttributes in a single projection + */ + it('TestMultipleExclude', async () => { + const testName: string = 'TestMultipleExclude'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['name', 'age', 'address'], ['address', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(4); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('email'); + }); + + /** + * ExcludeAttributes on an entity definition + */ + it('TestExtendsEntityProj', async () => { + const testName: string = 'TestExtendsEntityProj'; + const entityName: string = 'Child'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(3); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + }); + + /** + * SelectsSomeAvoidNames on an entity definition + */ + it('TestExtendsEntity', async () => { + const testName: string = 'TestExtendsEntity'; + const entityName: string = 'Child'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(3); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + }); + + /** + * ExcludeAttributes on a polymorphic source + */ + it('TestPolymorphicProj', async () => { + const testName: string = 'TestPolymorphicProj'; + const entityName: string = 'BusinessPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['emailId', 'address', 'isPrimary', 'phoneId', 'number', 'socialId', 'account'] + // Excluded attributes: ['socialId', 'account'] + expect(resolvedEntity.attributes.length) + .toEqual(5); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('emailId'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('isPrimary'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneId'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('number'); + }); + + /** + * SelectsSomeAvoidNames on a polymorphic source + */ + it('TestPolymorphic', async () => { + const testName: string = 'TestPolymorphic'; + const entityName: string = 'BusinessPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['emailId', 'address', 'isPrimary', 'phoneId', 'number', 'socialId', 'account'] + // Excluded attributes: ['socialId', 'account'] + expect(resolvedEntity.attributes.length) + .toEqual(5); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('emailId'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('isPrimary'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneId'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('number'); + }); + + /** + * ExcludeAttributes on an array source + */ + it('TestArraySourceProj', async () => { + const testName: string = 'TestArraySourceProj'; + const entityName: string = 'FriendGroup'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['personCount', 'name1', 'age1', 'address1', 'phoneNumber1', 'email1', ..., 'email3'] (16 total) + // Excluded attributes: ['age1', 'age2', 'age3'] + expect(resolvedEntity.attributes.length) + .toEqual(13); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('personCount'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('name1'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address1'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber1'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('email1'); + expect((resolvedEntity.attributes.allItems[5] as CdmTypeAttributeDefinition).name) + .toEqual('name2'); + expect((resolvedEntity.attributes.allItems[6] as CdmTypeAttributeDefinition).name) + .toEqual('address2'); + expect((resolvedEntity.attributes.allItems[7] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber2'); + expect((resolvedEntity.attributes.allItems[8] as CdmTypeAttributeDefinition).name) + .toEqual('email2'); + expect((resolvedEntity.attributes.allItems[9] as CdmTypeAttributeDefinition).name) + .toEqual('name3'); + expect((resolvedEntity.attributes.allItems[10] as CdmTypeAttributeDefinition).name) + .toEqual('address3'); + expect((resolvedEntity.attributes.allItems[11] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber3'); + expect((resolvedEntity.attributes.allItems[12] as CdmTypeAttributeDefinition).name) + .toEqual('email3'); + }); + + /** + * SelectsSomeAvoidNames on an array source + */ + it('TestArraySource', async () => { + const testName: string = 'TestArraySource'; + const entityName: string = 'FriendGroup'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['GroupOfPeoplePersonCount', 'GroupOfPeopleName1', 'GroupOfPeopleAge1', 'GroupOfPeopleAddress1', + // 'GroupOfPeoplePhoneNumber1', 'GroupOfPeopleEmail1', ..., 'GroupOfPeopleEmail3'] (16 total) + // Excluded attributes: ['GroupOfPeopleAge1', 'GroupOfPeopleAge2', 'GroupOfPeopleAge3'] + expect(resolvedEntity.attributes.length) + .toEqual(13); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeoplePersonCount'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleName1'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleAddress1'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeoplePhoneNumber1'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleEmail1'); + expect((resolvedEntity.attributes.allItems[5] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleName2'); + expect((resolvedEntity.attributes.allItems[6] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleAddress2'); + expect((resolvedEntity.attributes.allItems[7] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeoplePhoneNumber2'); + expect((resolvedEntity.attributes.allItems[8] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleEmail2'); + expect((resolvedEntity.attributes.allItems[9] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleName3'); + expect((resolvedEntity.attributes.allItems[10] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleAddress3'); + expect((resolvedEntity.attributes.allItems[11] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeoplePhoneNumber3'); + expect((resolvedEntity.attributes.allItems[12] as CdmTypeAttributeDefinition).name) + .toEqual('GroupOfPeopleEmail3'); + }); + + /** + * SelectsSomeAvoidNames on an array source that has renameFormat = '{m}' + */ + it('TestArraySourceRename', async () => { + const testName: string = 'TestArraySourceRename'; + const entityName: string = 'FriendGroup'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['personCount', 'name1', 'age1', 'address1', 'phoneNumber1', 'email1', ..., 'email3'] (16 total) + // Excluded attributes: ['age1', 'age2', 'age3'] + expect(resolvedEntity.attributes.length) + .toEqual(13); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('personCount'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('name1'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address1'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber1'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('email1'); + expect((resolvedEntity.attributes.allItems[5] as CdmTypeAttributeDefinition).name) + .toEqual('name2'); + expect((resolvedEntity.attributes.allItems[6] as CdmTypeAttributeDefinition).name) + .toEqual('address2'); + expect((resolvedEntity.attributes.allItems[7] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber2'); + expect((resolvedEntity.attributes.allItems[8] as CdmTypeAttributeDefinition).name) + .toEqual('email2'); + expect((resolvedEntity.attributes.allItems[9] as CdmTypeAttributeDefinition).name) + .toEqual('name3'); + expect((resolvedEntity.attributes.allItems[10] as CdmTypeAttributeDefinition).name) + .toEqual('address3'); + expect((resolvedEntity.attributes.allItems[11] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber3'); + expect((resolvedEntity.attributes.allItems[12] as CdmTypeAttributeDefinition).name) + .toEqual('email3'); + }); + + /** + * ExcludeAttributes with a condition + */ + it('TestConditionalProj', async () => { + const testName: string = 'TestConditionalProj'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, ['referenceOnly']); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + + const resolvedEntity2: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: none, condition was false + expect(resolvedEntity2.attributes.length) + .toEqual(5); + expect((resolvedEntity2.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity2.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((resolvedEntity2.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + expect((resolvedEntity2.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber'); + expect((resolvedEntity2.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('email'); + }); + + /** + * ExcludeAttributes with an empty exclude attributes list + */ + it('TestEmptyExclude', async () => { + const testName: string = 'TestEmptyExclude'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: [] + expect(resolvedEntity.attributes.length) + .toEqual(5); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((resolvedEntity.attributes.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + expect((resolvedEntity.attributes.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber'); + expect((resolvedEntity.attributes.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('email'); + }); + + /** + * ExcludeAttributes on an entity with an attribute group + */ + it('TestGroupProj', async () => { + const testName: string = 'TestGroupProj'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + }); + + /** + * SelectsSomeAvoidNames on an entity with an attribute group + */ + it('TestGroup', async () => { + const testName: string = 'TestGroup'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['PersonInfoName', 'PersonInfoAge', 'PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + // Excluded attributes: ['PersonInfoAddress', 'PersonInfoPhoneNumber', 'PersonInfoEmail'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('PersonInfoName'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('PersonInfoAge'); + }); + + /** + * SelectsSomeAvoidNames on an entity with an attribute group that has renameFormat = '{m}' + */ + it('TestGroupRename', async () => { + const testName: string = 'TestGroupRename'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, []); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email'] + // Excluded attributes: ['address', 'phoneNumber', 'email'] + expect(resolvedEntity.attributes.length) + .toEqual(2); + expect((resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((resolvedEntity.attributes.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + }); + + /** + * ExcludeAttributes with an entity attribute name on an inline entity reference that contains entity attributes + * This is testing that, for the case of the structured directive, we can filter using the name of an entity attribute + * in the inline entity reference to exclude the entire entity attribute group + */ + it('TestEANameProj', async () => { + const testName: string = 'TestEANameProj'; + const entityName: string = 'NewPerson'; + const corpus: CdmCorpusDefinition = getCorpus(testName); + + for (const resOpt of resOptsCombinations) { + await loadEntityForResolutionOptionAndSave(corpus, testName, entityName, resOpt); + } + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, ['structured']); + + // Original set of attributes: ['name', 'age', 'address', 'phoneNumber', 'email', 'title', 'company', 'tenure'] + // Excluded attributes: ['OccupationInfo'] (name of entity attribute that contains 'title', 'company', 'tenure') + expect(resolvedEntity.attributes.length) + .toEqual(1); // attribute group created because of structured directive + const attGroup: CdmAttributeGroupDefinition = (resolvedEntity.attributes.allItems[0] as CdmAttributeGroupReference).explicitReference as CdmAttributeGroupDefinition; + expect(attGroup.members.length) + .toEqual(5); + expect((attGroup.members.allItems[0] as CdmTypeAttributeDefinition).name) + .toEqual('name'); + expect((attGroup.members.allItems[1] as CdmTypeAttributeDefinition).name) + .toEqual('age'); + expect((attGroup.members.allItems[2] as CdmTypeAttributeDefinition).name) + .toEqual('address'); + expect((attGroup.members.allItems[3] as CdmTypeAttributeDefinition).name) + .toEqual('phoneNumber'); + expect((attGroup.members.allItems[4] as CdmTypeAttributeDefinition).name) + .toEqual('email'); + }); + + /** + * Creates a corpus + */ + function getCorpus(testName: string): CdmCorpusDefinition { + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, testName); + + return corpus; + } + + /** + * Creates an entity + */ + function createEntity(corpus: CdmCorpusDefinition, localRoot: CdmFolderDefinition): CdmEntityDefinition { + const entityName: string = 'TestEntity'; + const entity: CdmEntityDefinition = corpus.MakeObject(cdmObjectType.entityDef, entityName); + + const entityDoc: CdmDocumentDefinition = corpus.MakeObject(cdmObjectType.documentDef, `${entityName}.cdm.json`, false); + entityDoc.imports.push(foundationJsonPath); + entityDoc.definitions.push(entity); + localRoot.documents.push(entityDoc, entityDoc.name); + + return entity; + } + + /** + * Creates a source entity for a projection + */ + function createSourceEntity(corpus: CdmCorpusDefinition, localRoot: CdmFolderDefinition): CdmEntityDefinition { + const entityName: string = 'SourceEntity'; + const entity: CdmEntityDefinition = corpus.MakeObject(cdmObjectType.entityDef, entityName); + + const attributeName1: string = 'id'; + const attribute1: CdmTypeAttributeDefinition = corpus.MakeObject(cdmObjectType.typeAttributeDef, attributeName1); + attribute1.dataType = corpus.MakeRef(cdmObjectType.dataTypeRef, 'string', true); + entity.attributes.push(attribute1); + + const attributeName2: string = 'name'; + const attribute2: CdmTypeAttributeDefinition = corpus.MakeObject(cdmObjectType.typeAttributeDef, attributeName2); + attribute2.dataType = corpus.MakeRef(cdmObjectType.dataTypeRef, 'string', true); + entity.attributes.push(attribute2); + + const attributeName3: string = 'value'; + const attribute3: CdmTypeAttributeDefinition = corpus.MakeObject(cdmObjectType.typeAttributeDef, attributeName3); + attribute3.dataType = corpus.MakeRef(cdmObjectType.dataTypeRef, 'integer', true); + entity.attributes.push(attribute3); + + const attributeName4: string = 'date'; + const attribute4: CdmTypeAttributeDefinition = corpus.MakeObject(cdmObjectType.typeAttributeDef, attributeName4); + attribute4.dataType = corpus.MakeRef(cdmObjectType.dataTypeRef, 'date', true); + entity.attributes.push(attribute4); + + const entityDoc: CdmDocumentDefinition = corpus.MakeObject(cdmObjectType.documentDef, `${entityName}.cdm.json`, false); + entityDoc.imports.push(foundationJsonPath); + entityDoc.definitions.push(entity); + localRoot.documents.push(entityDoc, entityDoc.name); + + return entity; + } + + /** + * Creates a projection + */ + function createProjection(corpus: CdmCorpusDefinition, localRoot: CdmFolderDefinition): CdmProjection { + // Create an entity reference to use as the source of the projection + const projectionSource: CdmEntityReference = corpus.MakeObject(cdmObjectType.entityRef, undefined); + projectionSource.explicitReference = createSourceEntity(corpus, localRoot); + + // Create the projection + const projection: CdmProjection = corpus.MakeObject(cdmObjectType.projectionDef); + projection.source = projectionSource; + + return projection; + } + + /** + * Loads an entity, resolves it, and then validates the generated attribute contexts + */ + async function loadEntityForResolutionOptionAndSave(corpus: CdmCorpusDefinition, testName: string, entityName: string, resOpts: string[]): Promise { + const expectedOutputPath: string = testHelper.getExpectedOutputFolderPath(testsSubpath, testName); + const fileNameSuffix: string = testUtils.getResolutionOptionNameSuffix(resOpts); + + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`); + const resolvedEntity: CdmEntityDefinition = await testUtils.getResolvedEntity(corpus, entity, resOpts, true); + AttributeContextUtil.validateAttributeContext(corpus, expectedOutputPath, `${entityName}${fileNameSuffix}`, resolvedEntity); + } +}); diff --git a/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionFK.test.ts b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionFK.test.ts index 739be2c51d..c14e410962 100644 --- a/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionFK.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionFK.test.ts @@ -10,6 +10,7 @@ import { resolveOptions } from '../../../internal'; import { testHelper } from '../../testHelper'; +import { testUtils } from '../../testUtils'; import { AttributeContextUtil } from './AttributeContextUtil'; describe('Cdm/Projection/ProjectionFKTest', () => { @@ -178,7 +179,7 @@ describe('Cdm/Projection/ProjectionFKTest', () => { const manifest: CdmManifestDefinition = await corpus.fetchObjectAsync('local:/default.manifest.cdm.json'); const expectedOutputPath: string = testHelper.getExpectedOutputFolderPath(testsSubpath, testName); - const fileNameSuffix: string = getResolutionOptionNameSuffix(resOpts); + const fileNameSuffix: string = testUtils.getResolutionOptionNameSuffix(resOpts); const entSalesForeignKeyProjection: CdmEntityDefinition = await corpus.fetchObjectAsync(`local:/${entityName}.cdm.json/${entityName}`, manifest); expect(entSalesForeignKeyProjection) @@ -189,27 +190,13 @@ describe('Cdm/Projection/ProjectionFKTest', () => { AttributeContextUtil.validateAttributeContext(corpus, expectedOutputPath, `${entityName}${fileNameSuffix}`, resolvedSalesForeignKeyProjection); } - function getResolutionOptionNameSuffix(resolutionOptions: string[]): string { - let fileNamePrefix: string = ''; - - for (let i: number = 0; i < resolutionOptions.length; i++) { - fileNamePrefix = `${fileNamePrefix}_${resolutionOptions[i]}`; - } - - if (!fileNamePrefix) { - fileNamePrefix = '_default'; - } - - return fileNamePrefix; - } - - async function saveResolved(corpus: CdmCorpusDefinition, manifest: CdmManifestDefinition, testName: string, inputEntity: CdmEntityDefinition, resolutionOptions: string[]): Promise{ + async function saveResolved(corpus: CdmCorpusDefinition, manifest: CdmManifestDefinition, testName: string, inputEntity: CdmEntityDefinition, resolutionOptions: string[]): Promise { const roHashSet: Set = new Set(); for (let i: number = 0; i < resolutionOptions.length; i++) { roHashSet.add(resolutionOptions[i]); } - const fileNameSuffix: string = getResolutionOptionNameSuffix(resolutionOptions); + const fileNameSuffix: string = testUtils.getResolutionOptionNameSuffix(resolutionOptions); const resolvedEntityName: string = `Resolved_${inputEntity.entityName}${fileNameSuffix}.cdm.json`; diff --git a/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionMiscellaneous.test.ts b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionMiscellaneous.test.ts index 741c810f5a..1710c79d3a 100644 --- a/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionMiscellaneous.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Projection/ProjectionMiscellaneous.test.ts @@ -24,8 +24,6 @@ import { testHelper } from '../../testHelper'; * Various projections scenarios, partner scenarios, bug fixes */ describe('Cdm/Projection/ProjectionMiscellaneousTest', () => { - const foundationJsonPath: string = 'cdm:/foundations.cdm.json'; - const resOptsCombinations: Set[] = [ new Set([]), new Set(['referenceOnly']), diff --git a/objectModel/TypeScript/__test__/Cdm/Relationship/CalculateRelationship.test.ts b/objectModel/TypeScript/__test__/Cdm/Relationship/CalculateRelationship.test.ts index e2385ee250..9b4629eddd 100644 --- a/objectModel/TypeScript/__test__/Cdm/Relationship/CalculateRelationship.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Relationship/CalculateRelationship.test.ts @@ -9,7 +9,7 @@ import { CdmE2ERelationship, CdmEntityDefinition, CdmFolderDefinition, - CdmManifestDefinition, + CdmManifestDefinition } from '../../../internal'; import { testHelper } from '../../testHelper'; import { testUtils } from '../../testUtils'; @@ -148,7 +148,7 @@ describe('Cdm/Relationship/CalculateRelationshipTest', () => { function getRelationshipStrings(relationships: CdmCollection): string { let bldr: string = ''; for (const rel of relationships.allItems) { - bldr += `${rel.name}|${rel.toEntity}|${rel.toEntityAttribute}|${rel.fromEntity}|${rel.fromEntityAttribute}`; + bldr += `${rel.name ? rel.name : ''}|${rel.toEntity}|${rel.toEntityAttribute}|${rel.fromEntity}|${rel.fromEntityAttribute}`; bldr += endOfLine; } diff --git a/objectModel/TypeScript/__test__/Cdm/Relationship/Relationship.test.ts b/objectModel/TypeScript/__test__/Cdm/Relationship/Relationship.test.ts index 7a2f926bba..78f3b5316a 100644 --- a/objectModel/TypeScript/__test__/Cdm/Relationship/Relationship.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Relationship/Relationship.test.ts @@ -312,6 +312,8 @@ function verifyRelationships(manifest: CdmManifestDefinition, expectedRelationsh && x.fromEntityAttribute === expectedRel.fromEntityAttribute && x.toEntity === expectedRel.toEntity && x.toEntityAttribute === expectedRel.toEntityAttribute + && ((!x.name && !expectedRel.name) + || x.name === expectedRel.name) ); expect(found.length) .toBe(1); diff --git a/objectModel/TypeScript/__test__/Cdm/Resolution/EntityResolution.test.ts b/objectModel/TypeScript/__test__/Cdm/Resolution/EntityResolution.test.ts index be2025e9a9..ae568c3dc1 100644 --- a/objectModel/TypeScript/__test__/Cdm/Resolution/EntityResolution.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Resolution/EntityResolution.test.ts @@ -66,7 +66,7 @@ describe('Cdm/Resolution/EntityResolution', () => { .toBeGreaterThanOrEqual(1); // setting back expected test timeout. - jest.setTimeout(5000); + jest.setTimeout(10000); }); /** @@ -93,9 +93,9 @@ describe('Cdm/Resolution/EntityResolution', () => { /** * Test if the mini dyn resolved entities match */ - it('TestResolvedMiniDyn', async () => { - await resolveSaveDebuggingFileAndAssert('TestResolvedMiniDyn', 'MiniDyn'); - }); + // it('TestResolvedMiniDyn', async () => { + // await resolveSaveDebuggingFileAndAssert('TestResolvedMiniDyn', 'MiniDyn'); + // }); /** * Test if the overrides resolved entities match @@ -337,8 +337,11 @@ describe('Cdm/Resolution/EntityResolution', () => { currentFile = ent as CdmObject; } corpusPath = cdmCorpus.storage.createAbsoluteCorpusPath(ent.entityPath, currentFile); - const newEnt: CdmEntityDefinition = await cdmCorpus.fetchObjectAsync(corpusPath); - const resOpt: resolveOptions = new resolveOptions(newEnt.inDocument, directives); + const resOpt: resolveOptions = new resolveOptions(); + resOpt.strictValidation = true; + const newEnt: CdmEntityDefinition = await cdmCorpus.fetchObjectAsync(corpusPath, null, resOpt); + resOpt.wrtDoc = newEnt.inDocument; + resOpt.directives = directives; const resEnt: ResolvedEntity = newEnt.getResolvedEntity(resOpt); if (spew) { resEnt.spew(resOpt, spew, ' ', true); diff --git a/objectModel/TypeScript/__test__/Cdm/Resolution/ManifestResolve.test.ts b/objectModel/TypeScript/__test__/Cdm/Resolution/ManifestResolve.test.ts index 698541f5aa..ab3f50de13 100644 --- a/objectModel/TypeScript/__test__/Cdm/Resolution/ManifestResolve.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/Resolution/ManifestResolve.test.ts @@ -56,7 +56,7 @@ describe('Cdm/Resolution/ManifestResolve', () => { .toBe('cdm:/core/applicationCommon/foundationCommon/crmCommon/accelerators/healthCare/electronicMedicalRecords/electronicMedicalRecords.manifest.cdm.json/Address'); // setting back expected test timeout. - jest.setTimeout(5000); + jest.setTimeout(10000); }); /** diff --git a/objectModel/TypeScript/__test__/Cdm/SymbolResolution/symbolResolve.test.ts b/objectModel/TypeScript/__test__/Cdm/SymbolResolution/symbolResolve.test.ts index bb445be110..7786e636fa 100644 --- a/objectModel/TypeScript/__test__/Cdm/SymbolResolution/symbolResolve.test.ts +++ b/objectModel/TypeScript/__test__/Cdm/SymbolResolution/symbolResolve.test.ts @@ -13,6 +13,7 @@ import { } from '../../../internal'; import { isAttributeGroupDefinition, isAttributeGroupReference, isCdmTraitDefinition, isCdmTraitReference, isTypeAttributeDefinition } from '../../../Utilities/cdmObjectTypeGuards'; import { testHelper } from '../../testHelper'; +import { resolveContextScope } from '../../../Utilities/resolveContextScope'; describe('Cdm/SymbolResolution/SymbolResolve', () => { const testsSubpath: string = 'Cdm/SymbolResolution'; @@ -24,8 +25,10 @@ describe('Cdm/SymbolResolution/SymbolResolve', () => { const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestSymbolResolution'); // load the file - const ent: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/symbolEntity.cdm.json/symbolEnt'); - const resOpt: resolveOptions = new resolveOptions(ent.inDocument); + const resOpt: resolveOptions = new resolveOptions(); + resOpt.strictValidation = true; + const ent: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/symbolEntity.cdm.json/symbolEnt', null, resOpt); + resOpt.wrtDoc = ent.inDocument; // resolve a reference to the trait object const traitDef: CdmObjectBase = corpus.resolveSymbolReference( diff --git a/objectModel/TypeScript/__test__/Network/MockCdmHttpClient.test.ts b/objectModel/TypeScript/__test__/Network/MockCdmHttpClient.test.ts index 9d9702cbee..961e20bc9f 100644 --- a/objectModel/TypeScript/__test__/Network/MockCdmHttpClient.test.ts +++ b/objectModel/TypeScript/__test__/Network/MockCdmHttpClient.test.ts @@ -83,7 +83,7 @@ describe('Network/MockCdmHttpClientTest', () => { const httpRequest: CdmHttpRequest = new CdmHttpRequest('/folder1'); httpRequest.timeout = 2000; - httpRequest.maximumTimeout = 2000; + httpRequest.maximumTimeout = 20000; httpRequest.numberOfRetries = 0; try { @@ -112,7 +112,7 @@ describe('Network/MockCdmHttpClientTest', () => { fail('This test case should\'ve failed and throw an exception due timeout.'); } catch (err) { expect(err) - .toBe('Request timeout.'); + .toBe('Maximum timeout exceeded.'); } }); diff --git a/objectModel/TypeScript/__test__/Persistence/CdmFolder/TypeAttribute/TypeAttribute.test.ts b/objectModel/TypeScript/__test__/Persistence/CdmFolder/TypeAttribute/TypeAttribute.test.ts index 086f1a802e..36afa77cfa 100644 --- a/objectModel/TypeScript/__test__/Persistence/CdmFolder/TypeAttribute/TypeAttribute.test.ts +++ b/objectModel/TypeScript/__test__/Persistence/CdmFolder/TypeAttribute/TypeAttribute.test.ts @@ -15,7 +15,8 @@ import { CdmTraitCollection, CdmTraitReference, CdmTypeAttributeDefinition, - resolveContext + resolveContext, + resolveOptions } from '../../../../internal'; import { PersistenceLayer } from '../../../../Persistence'; import { EntityPersistence } from '../../../../Persistence/CdmFolder/EntityPersistence'; @@ -70,14 +71,13 @@ describe('Persistence.CdmFolder.TypeAttribute', () => { * Testing that 'isPrimaryKey' property value is correct when reading from an unresolved and resolved entity schema. */ it('TestReadingIsPrimaryKey', async (done) => { - const testInputPath: string = testHelper.getInputFolderPath(testsSubpath, 'TestReadingIsPrimaryKey'); - const corpus: CdmCorpusDefinition = new CdmCorpusDefinition(); - corpus.setEventCallback(() => { }, cdmStatusLevel.warning); - corpus.storage.mount('local', new LocalAdapter(testInputPath)); - corpus.storage.defaultNamespace = 'local'; + const corpus: CdmCorpusDefinition = testHelper.getLocalCorpus(testsSubpath, 'TestReadingIsPrimaryKey'); + + const resOpt: resolveOptions = new resolveOptions(); + resOpt.strictValidation = true; // Read from an unresolved entity schema. - const entity: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/TeamMembership.cdm.json/TeamMembership'); + const entity: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/TeamMembership.cdm.json/TeamMembership', null, resOpt); const attributeGroupRef: CdmAttributeGroupReference = entity.attributes.allItems[0] as CdmAttributeGroupReference; const attributeGroup: CdmAttributeGroupDefinition = attributeGroupRef.explicitReference as CdmAttributeGroupDefinition; const typeAttribute: CdmTypeAttributeDefinition = attributeGroup.members.allItems[0] as CdmTypeAttributeDefinition; @@ -91,7 +91,7 @@ describe('Persistence.CdmFolder.TypeAttribute', () => { expect(isIdentifiedBy1.arguments.allItems[0].value).toEqual('TeamMembership/(resolvedAttributes)/teamMembershipId'); // Read from a resolved entity schema. - const resolvedEntity: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/TeamMembership_Resolved.cdm.json/TeamMembership'); + const resolvedEntity: CdmEntityDefinition = await corpus.fetchObjectAsync('local:/TeamMembership_Resolved.cdm.json/TeamMembership', null, resOpt); const resolvedTypeAttribute: CdmTypeAttributeDefinition = resolvedEntity.attributes.allItems[0] as CdmTypeAttributeDefinition; expect(resolvedTypeAttribute.isPrimaryKey) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json new file mode 100644 index 0000000000..87e198dc4b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Corpus/TestStrictValidation/Input/doc.cdm.json @@ -0,0 +1,9 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "definitions": [ + { + "traitName": "is.CDM", + "extendsTrait": "is" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt index b5a2d38fb9..8d35725227 100644 --- a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestForwardCompatibility/TestAllOperations/ExpectedOutput/AttrCtx_TestAllOperations.txt @@ -1,4 +1,9 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey +Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource @@ -6,12 +11,21 @@ Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/p Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/extends/CdmEntity Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/A Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/B/Resolved_TestAllOperations/hasAttributes/B/(ref) Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0 -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey -Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey -output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/_generatedAttributeSet/_generatedAttributeRound0/operation/index9/operationReplaceAsForeignKey/_foreignKey/Resolved_TestAllOperations/hasAttributes/A_FK/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/attributeContext/Resolved_TestAllOperations/extends/projection/source/TestSource/C/Resolved_TestAllOperations/hasAttributes/C/(ref) +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/B +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/C +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array output:/Resolved_TestAllOperations.cdm.json/Resolved_TestAllOperations/hasAttributes/A_FK is.linkedEntity.identifier [Parameter (Name / DefaultValue): entityReferences / ] diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..4831c64bd8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..84a40c8dc5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..d140e00555 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..b85e4c00c5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..11db47873b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..036d38e697 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..79db84eb00 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..102fb216c4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,52 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..b4a669e6a7 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..9f349f008a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..22060cee5b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..c11c4a8497 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4a4da7a1bb --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePersonCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleName3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleAddress3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeoplePhoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/GroupOfPeopleEmail3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "GroupOfPeoplePersonCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "GroupOfPeopleName1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleName3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleAddress3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeoplePhoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "GroupOfPeopleEmail3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7f03aa81eb --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d6913cca9b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..760d1c3e43 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,458 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "age1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "age2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "age3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/age3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "age1", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/age1", + "dataFormat": "Int32" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "age2", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/age2", + "dataFormat": "Int32" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "age3", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/age3", + "dataFormat": "Int32" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..21779b5f13 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/FriendGroup.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "GroupOfPeopleAge1", + "GroupOfPeopleAge2", + "GroupOfPeopleAge3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySource/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..c3ba904ee2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..c3dc03b884 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..10b6473ec9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..c2103b95b1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9dfc44639b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1a91399daa --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..770bfd4ae9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..4947e14174 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,123 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..183ddcde77 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..210a65544c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..8b2a5c2584 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..ccbf84132c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..1cc7f833ef --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b30ba00329 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..59b667f9bf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..746dd6979a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,414 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/projection/source/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..66a79be952 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/FriendGroup.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": { + "source": "ThreeMusketeers", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age1", + "age2", + "age3" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt new file mode 100644 index 0000000000..898bb474ec --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_default.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_default/hasAttributes/personCount/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_default/hasAttributes/name1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_default/hasAttributes/address1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_default/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_default/hasAttributes/email1/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_default/hasAttributes/name2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_default/hasAttributes/address2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_default/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_default/hasAttributes/email2/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_default/hasAttributes/name3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_default/hasAttributes/address3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_default/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_default/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_default.cdm.json/Resolved_FriendGroup_default/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt new file mode 100644 index 0000000000..29617cf7d4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_normalized.cdm.json/Resolved_FriendGroup_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt new file mode 100644 index 0000000000..ab440dd038 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_normalized_structured.cdm.json/Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt new file mode 100644 index 0000000000..0a861e2127 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly.cdm.json/Resolved_FriendGroup_referenceOnly/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5633d36d1c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized.txt @@ -0,0 +1,119 @@ +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount +is.dataFormat.integer +is.linkedEntity.array.count +is.dataFormat.integer +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_FriendGroup_referenceOnly_normalized.cdm.json/Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3 +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..817e308f12 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_normalized_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_normalized_structured.cdm.json/Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt new file mode 100644 index 0000000000..731f8e007a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_referenceOnly_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_referenceOnly_structured.cdm.json/Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt new file mode 100644 index 0000000000..acf59a37de --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/AttrCtx_FriendGroup_structured.txt @@ -0,0 +1,46 @@ +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends/CdmEntity +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/name +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/age +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/address +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/phoneNumber +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/email +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2 +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3/(ref) +Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3 +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3/(ref) +output:/Resolved_FriendGroup_structured.cdm.json/Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json new file mode 100644 index 0000000000..14b0e7d09f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_default.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_default/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_default/attributeContext/Resolved_FriendGroup_default/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json new file mode 100644 index 0000000000..50d90d7ba8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized/attributeContext/Resolved_FriendGroup_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json new file mode 100644 index 0000000000..604ca61bbf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_normalized_structured/attributeContext/Resolved_FriendGroup_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json new file mode 100644 index 0000000000..6118ae63e2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly/attributeContext/Resolved_FriendGroup_referenceOnly/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2a48166864 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized.cdm.json @@ -0,0 +1,385 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/personCount" + ] + }, + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email1" + ] + }, + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email2" + ] + }, + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized/hasAttributes/email3" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized/attributeContext/Resolved_FriendGroup_referenceOnly_normalized/GroupOfPeople/_generatedAttributeSet/_generatedAttributeRound0/email3", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..91214b136e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_normalized_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_normalized_structured/attributeContext/Resolved_FriendGroup_referenceOnly_normalized_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..fc811c2dbc --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_referenceOnly_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_referenceOnly_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_referenceOnly_structured/attributeContext/Resolved_FriendGroup_referenceOnly_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json new file mode 100644 index 0000000000..c665ab52e9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/ExpectedOutput/_FriendGroup_structured.cdm.json @@ -0,0 +1,407 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/FriendGroup.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_FriendGroup_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "GroupOfPeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured", + "definition": "resolvedFrom/FriendGroup/hasAttributes/GroupOfPeople", + "contents": [ + { + "type": "entity", + "name": "ThreeMusketeers", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "definition": "resolvedFrom/ThreeMusketeers", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "ThreePeople", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople", + "contents": [ + { + "type": "addedAttributeExpansionTotal", + "name": "personCount", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "definition": "resolvedFrom/ThreeMusketeers/hasAttributes/ThreePeople/resolutionGuidance/countAttribute/personCount", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/personCount" + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name1" + ] + }, + { + "type": "attributeDefinition", + "name": "address1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address1" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber1" + ] + }, + { + "type": "attributeDefinition", + "name": "email1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email1" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound1", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name2" + ] + }, + { + "type": "attributeDefinition", + "name": "address2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address2" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber2" + ] + }, + { + "type": "attributeDefinition", + "name": "email2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email2" + ] + } + ] + }, + { + "type": "generatedRound", + "name": "_generatedAttributeRound2", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/name3" + ] + }, + { + "type": "attributeDefinition", + "name": "address3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/address3" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/phoneNumber3" + ] + }, + { + "type": "attributeDefinition", + "name": "email3", + "parent": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_FriendGroup_structured/hasAttributes/GroupOfPeople/members/email3" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "GroupOfPeople", + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople", + "members": [ + { + "name": "personCount", + "appliedTraits": [ + "is.dataFormat.integer", + "is.linkedEntity.array.count" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/personCount", + "dataFormat": "Int32" + }, + { + "name": "name1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/name1", + "dataFormat": "String" + }, + { + "name": "address1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/address1", + "dataFormat": "String" + }, + { + "name": "phoneNumber1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/phoneNumber1", + "dataFormat": "String" + }, + { + "name": "email1", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound0/email1", + "dataFormat": "String" + }, + { + "name": "name2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/name2", + "dataFormat": "String" + }, + { + "name": "address2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/address2", + "dataFormat": "String" + }, + { + "name": "phoneNumber2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/phoneNumber2", + "dataFormat": "String" + }, + { + "name": "email2", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound1/email2", + "dataFormat": "String" + }, + { + "name": "name3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/name3", + "dataFormat": "String" + }, + { + "name": "address3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/address3", + "dataFormat": "String" + }, + { + "name": "phoneNumber3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/phoneNumber3", + "dataFormat": "String" + }, + { + "name": "email3", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_FriendGroup_structured/attributeContext/Resolved_FriendGroup_structured/GroupOfPeople/ThreeMusketeers/ThreePeople/_generatedAttributeSet/_generatedAttributeRound2/email3", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json new file mode 100644 index 0000000000..e5dff68336 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/FriendGroup.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "FriendGroup", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "GroupOfPeople", + "entity": "ThreeMusketeers", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "age1", + "age2", + "age3" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json new file mode 100644 index 0000000000..e58f506ffc --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/ThreeMusketeers.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "ThreeMusketeers", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "ThreePeople", + "entity": "Person", + "resolutionGuidance": { + "removedDirectives": [ + "normalized", + "structured" + ], + "cardinality": "many", + "renameFormat": "{m}{o}", + "expansion": { + "startingOrdinal": 1, + "maximumExpansion": 3, + "countAttribute": { + "dataType": "integer", + "name": "personCount" + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..f431faa5b5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "ThreeMusketeers.cdm.json" + }, + { + "corpusPath": "FriendGroup.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..97720d54ca --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestArraySourceRename/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "ThreeMusketeers", + "entitySchema": "ThreeMusketeers.cdm.json/ThreeMusketeers" + }, + { + "type": "LocalEntity", + "entityName": "FriendGroup", + "entitySchema": "FriendGroup.cdm.json/FriendGroup" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..e06f461e76 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/NewPerson.cdm.json @@ -0,0 +1,34 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "condition": "referenceOnly", + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestConditionalProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..ae71cfca00 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..275e07c722 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..7486d85c04 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..0be72be12d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..dcaaf42f73 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,68 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..21401b014e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..07e283469d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..56ff3c9fbd --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..7339589bec --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..2fad4d8b6e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..065822abbd --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..8114b48f53 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..3fd691fc03 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,263 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAddress" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoPhoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoEmail" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTitle" + ] + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoCompany" + ] + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/OccupationInfoTenure" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAddress", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "PersonInfoPhoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "PersonInfoEmail", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTitle", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/title", + "dataFormat": "String" + }, + { + "name": "OccupationInfoCompany", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/company", + "dataFormat": "String" + }, + { + "name": "OccupationInfoTenure", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/tenure", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..b78cae5a99 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..508a3c40db --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7ceeb71428 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,245 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "EmployedPerson", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "OccupationInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/OccupationInfo", + "contents": [ + { + "type": "entity", + "name": "Occupation", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo", + "definition": "resolvedFrom/Occupation", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "title", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/title" + }, + { + "type": "attributeDefinition", + "name": "company", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/company" + }, + { + "type": "attributeDefinition", + "name": "tenure", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/OccupationInfo/Occupation", + "definition": "resolvedFrom/Occupation/hasAttributes/tenure" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection/source/EmployedPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/EmployedPerson/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..54b55ef957 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/NewPerson.cdm.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "PersonInfoAge", + "OccupationInfo" + ] + } + ], + "source": { + "entityReference": { + "entityName": "EmployedPerson", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person" + }, + { + "name": "OccupationInfo", + "entity": "Occupation" + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json new file mode 100644 index 0000000000..9441ce0cc3 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Occupation.cdm.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Occupation", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "title", + "dataType": "string" + }, + { + "name": "company", + "dataType": "string" + }, + { + "name": "tenure", + "dataType": "integer" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..1adcb29194 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/_allImports.cdm.json @@ -0,0 +1,18 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + }, + { + "corpusPath": "Occupation.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..6f2ef614b4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEANameProj/Input/default.manifest.cdm.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + }, + { + "type": "LocalEntity", + "entityName": "Occupation", + "entitySchema": "Occupation.cdm.json/Occupation" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..23cf99a2e2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address/Resolved_NewPerson_default/hasAttributes/address/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b424b14f0b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..5c0d65772a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..bb752f3cc4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..648b6d88e9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..4d102cd18e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..e4d2986fd3 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..78cbd70467 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,45 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address/Resolved_NewPerson_structured/hasAttributes/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..753d8c7f03 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e75316acb5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..246cb6ae6b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..566488859d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6cb61844a2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f1e10a7a5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..2266dd17bd --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..353f635010 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,174 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..f4db93b754 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/NewPerson.cdm.json @@ -0,0 +1,30 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestEmptyExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..a5397f4d5e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8cc3fa382e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..dc9b62925b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..151f7281f4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..d067306b49 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..87ca43e4a1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..552d5ced07 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..54a335f38a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,24 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..316f331452 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..722a7c9220 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9f7e5f4c8c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..c174bd0d2e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..6531e1be6a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..a389864435 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05517abbb1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0bffae9a4e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,135 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExcludeAttributes/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..7820e5d230 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,27 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..a5a4fc3457 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..d8062ffaea --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..293fd0e803 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..3275ccfc32 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0027dd0ba1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..6e10fce409 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..b2700722da --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,27 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..2aa84f4dc2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..c136af46ae --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..44574b5484 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..a4375d62ee --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..2162871628 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..34b94171d0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6c3262f9c0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..c2b555f07e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,119 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json new file mode 100644 index 0000000000..f74d9c8658 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Child.cdm.json @@ -0,0 +1,24 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": "Person", + "extendsEntityResolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "phoneNumber", + "email" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntity/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt new file mode 100644 index 0000000000..aa4d5724b8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_default.txt @@ -0,0 +1,29 @@ +Resolved_Child_default/attributeContext/Resolved_Child_default/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/phoneNumber +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/email +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name/Resolved_Child_default/hasAttributes/name/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age/Resolved_Child_default/hasAttributes/age/(ref) +Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address/Resolved_Child_default/hasAttributes/address/(ref) +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_default.cdm.json/Resolved_Child_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt new file mode 100644 index 0000000000..e75f2812fa --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/email +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name/Resolved_Child_normalized/hasAttributes/name/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age/Resolved_Child_normalized/hasAttributes/age/(ref) +Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address/Resolved_Child_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized.cdm.json/Resolved_Child_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt new file mode 100644 index 0000000000..bfde6d8958 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/email +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name/Resolved_Child_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age/Resolved_Child_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address/Resolved_Child_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_normalized_structured.cdm.json/Resolved_Child_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt new file mode 100644 index 0000000000..4f9b2716e3 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/email +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name/Resolved_Child_referenceOnly/hasAttributes/name/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age/Resolved_Child_referenceOnly/hasAttributes/age/(ref) +Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address/Resolved_Child_referenceOnly/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly.cdm.json/Resolved_Child_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt new file mode 100644 index 0000000000..8bd9977a8b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized.cdm.json/Resolved_Child_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..85807ee4aa --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_normalized_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_normalized_structured.cdm.json/Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt new file mode 100644 index 0000000000..7bfedba49c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_referenceOnly_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/email +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name/Resolved_Child_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age/Resolved_Child_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address/Resolved_Child_referenceOnly_structured/hasAttributes/address/(ref) +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_referenceOnly_structured.cdm.json/Resolved_Child_referenceOnly_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt new file mode 100644 index 0000000000..73b340e97a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/AttrCtx_Child_structured.txt @@ -0,0 +1,29 @@ +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends/CdmEntity +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/phoneNumber +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/email +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name/Resolved_Child_structured/hasAttributes/name/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age/Resolved_Child_structured/hasAttributes/age/(ref) +Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address/Resolved_Child_structured/hasAttributes/address/(ref) +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_Child_structured.cdm.json/Resolved_Child_structured/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json new file mode 100644 index 0000000000..ec027309de --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_default.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_default", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_default/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_default/attributeContext/Resolved_Child_default/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json new file mode 100644 index 0000000000..dc7c397538 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized/attributeContext/Resolved_Child_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json new file mode 100644 index 0000000000..2846bba70a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_normalized_structured/attributeContext/Resolved_Child_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json new file mode 100644 index 0000000000..fe1185d9bb --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly/attributeContext/Resolved_Child_referenceOnly/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..9922350158 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized/attributeContext/Resolved_Child_referenceOnly_normalized/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..0d1fbbc8a1 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_normalized_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_normalized_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_normalized_structured/attributeContext/Resolved_Child_referenceOnly_normalized_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..f12d68507f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_referenceOnly_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_referenceOnly_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_referenceOnly_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_referenceOnly_structured/attributeContext/Resolved_Child_referenceOnly_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json new file mode 100644 index 0000000000..0eacc29b9c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/ExpectedOutput/_Child_structured.cdm.json @@ -0,0 +1,134 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/Child.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_Child_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_Child_structured", + "definition": "resolvedFrom/Child", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends", + "definition": "resolvedFrom/Child/extendsEntity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_Child_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_Child_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_Child_structured/hasAttributes/address" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_Child_structured/attributeContext/Resolved_Child_structured/extends/projection/source/Person/address", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json new file mode 100644 index 0000000000..534ad12da8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Child.cdm.json @@ -0,0 +1,27 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Child", + "extendsEntity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "phoneNumber", + "email" + ] + } + ] + }, + "hasAttributes": [] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..79874069f0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "Child.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..9fb28ad3f6 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestExtendsEntityProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "Child", + "entitySchema": "Child.cdm.json/Child" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..5accda3e69 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..1b20db6c36 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a8e5ab2706 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ade1e391cf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..562773ca9d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..0eea58de31 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..c694ddc17b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..abf7743cc5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,19 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..b9ab1cbc76 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..e5d1012a09 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4c1a52b3b7 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..67d84f5d7b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..65a9f1a779 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..9533378728 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..d7d54a2b8b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..538d294544 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,183 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroup/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..cfc51ccedd --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..385731083f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..20b9b8feb7 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..d2a23cd44b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..54584aaa2c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..97c6b4eb63 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..2cc586a301 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..f42f28ebf4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..a257a3eb4a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..acb2f79773 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1295a201e0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b5542e967f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..94c2ba9cde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..8f903baacc --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..344a51646c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..7d9f31af9d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,151 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..97027ca5fb --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/NewPerson.cdm.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..4881a6010a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b2dc538889 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..a491730a37 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..f56801a5cf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..239574fa4b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,28 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6039be79e8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..039e6b5578 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..d484336523 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,16 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3201eeca56 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..9d3592bbca --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..c88b5f631c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d36ffe88bf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f40ad2bea8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,162 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..7d8a767c83 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..05bfdc6fc7 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..da56da271d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,144 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeGroup", + "name": "someGroup", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup", + "contents": [ + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup", + "definition": "resolvedFrom/Person/hasAttributes/someGroup/members/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/someGroup/someGroup/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json new file mode 100644 index 0000000000..e2b523a2a2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/Person.cdm.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "someGroup", + "members": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestGroupRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d37d09bd1d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_default/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email/Resolved_NewPerson_default/hasAttributes/email/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..8de0719c8f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e58d8be648 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..35ccd9ad3c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9816c7ced0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..b3b5be0d6a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..21f29e779e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..5012e46b82 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,38 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email/Resolved_NewPerson_structured/hasAttributes/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/phoneNumber +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/email +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..c5c4025d78 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..7b492f672f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..d221c79165 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..42a0781548 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..cf960fd2b2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4571e90f54 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..5518c2e89a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0f676a9581 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,161 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/email" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/age", + "dataFormat": "Int32" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/Person/email", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..5b60c09ba7 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/NewPerson.cdm.json @@ -0,0 +1,40 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": "Person", + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "email" + ] + }, + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "name", + "age", + "address" + ] + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestMultipleExclude/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6c4f9ca606 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..043cdb5fee --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..0368d777c6 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..2010771295 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..5fe3afa5c9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..1e6f94af37 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..170a831d6b --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..4cf1ac2683 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,22 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/age +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6a1a157456 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..4d770b8336 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9c2620219c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..d8a353b931 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..f850cb0fc8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..196ed28794 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..a950eb4afa --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9891b7ad2e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,139 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/Person/name", + "dataFormat": "String" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..136f80d8b2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "age" + ] + } + ], + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": "Person" + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..ea8d2baad5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_default/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..ae777a8df9 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..3e8af81c67 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..aa3c262344 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..0f8eb12a69 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,56 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/emailId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/address +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/phoneId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/number +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/emailId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.identifiedBy + [Parameter (Name / DefaultValue): attribute / this.attribute] + [Argument Value: Resolved_BusinessPerson_referenceOnly_normalized/(resolvedAttributes)/phoneId] +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..6b69860f3f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..ba961ca94c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..37af52eeef --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,27 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/contactAt/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..215e7508cf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..40415a5647 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..4f93e5d946 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..b46819e324 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..ad5bed2eba --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,246 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId" + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/emailId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/phoneId", + "isPrimaryKey": true, + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/_generatedAttributeSet/_generatedAttributeRound0/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..2afbbeeb2c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c8f7323979 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..17d9739e7e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,278 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/contactAt/members/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "contactAt", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "members": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..e9778bd0f5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/BusinessPerson.cdm.json @@ -0,0 +1,57 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "socialId", + "account" + ] + } + }, + "entity": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphic/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt new file mode 100644 index 0000000000..e6a0e5f1c5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_default.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_default/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_default/hasAttributes/address/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_default/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_default/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_default/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_default.cdm.json/Resolved_BusinessPerson_default/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt new file mode 100644 index 0000000000..dd664dda22 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_normalized.cdm.json/Resolved_BusinessPerson_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt new file mode 100644 index 0000000000..cb2be99126 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_normalized_structured.cdm.json/Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt new file mode 100644 index 0000000000..f2789bf951 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly.cdm.json/Resolved_BusinessPerson_referenceOnly/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..820aafe34e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized.txt @@ -0,0 +1,45 @@ +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/account +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary +is.dataFormat.boolean +is.dataFormat.boolean +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId +is.dataFormat.integer +is.dataFormat.integer +output:/Resolved_BusinessPerson_referenceOnly_normalized.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..342475d633 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_normalized_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..4d778feb9f --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_referenceOnly_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_referenceOnly_structured.cdm.json/Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt new file mode 100644 index 0000000000..4eb6571a18 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/AttrCtx_BusinessPerson_structured.txt @@ -0,0 +1,31 @@ +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account/(ref) +Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary/Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/emailKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/phoneKind/(ref) +output:/Resolved_BusinessPerson_structured.cdm.json/Resolved_BusinessPerson_structured/hasAttributes/socialKind/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json new file mode 100644 index 0000000000..5160ce6bd6 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_default.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_default/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_default/attributeContext/Resolved_BusinessPerson_default/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json new file mode 100644 index 0000000000..d7fff5da7d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized/attributeContext/Resolved_BusinessPerson_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..1af2781a85 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_normalized_structured/attributeContext/Resolved_BusinessPerson_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..68e5e7c86e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly/attributeContext/Resolved_BusinessPerson_referenceOnly/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..71250ebb5e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,215 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId" + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account" + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary" + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary" + }, + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized/hasAttributes/number" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + }, + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..4bce14be16 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_normalized_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_normalized_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_normalized_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..6958c9a099 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_referenceOnly_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_referenceOnly_structured/attributeContext/Resolved_BusinessPerson_referenceOnly_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json new file mode 100644 index 0000000000..967537f9b4 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/ExpectedOutput/_BusinessPerson_structured.cdm.json @@ -0,0 +1,285 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/BusinessPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_BusinessPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson", + "contents": [ + { + "type": "attributeDefinition", + "name": "contactAt", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection", + "contents": [ + { + "type": "entity", + "name": "ContactKinds", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/emailKind", + "contents": [ + { + "type": "entity", + "name": "Email", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "definition": "resolvedFrom/Email", + "contents": [ + { + "type": "attributeDefinition", + "name": "emailId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/emailId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/emailId" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/address", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email", + "definition": "resolvedFrom/Email/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/emailKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "phoneKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/phoneKind", + "contents": [ + { + "type": "entity", + "name": "Phone", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "definition": "resolvedFrom/Phone", + "contents": [ + { + "type": "attributeDefinition", + "name": "phoneId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/phoneId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/phoneId" + ] + }, + { + "type": "attributeDefinition", + "name": "number", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/number", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/number" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone", + "definition": "resolvedFrom/Phone/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/phoneKind/members/isPrimary" + ] + } + ] + } + ] + }, + { + "type": "attributeDefinition", + "name": "socialKind", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds", + "definition": "resolvedFrom/BusinessPerson/hasAttributes/contactAt/entity/projection/source/ContactKinds/hasAttributes/socialKind", + "contents": [ + { + "type": "entity", + "name": "Social", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "definition": "resolvedFrom/Social", + "contents": [ + { + "type": "attributeDefinition", + "name": "socialId", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/socialId", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/socialId" + ] + }, + { + "type": "attributeDefinition", + "name": "account", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/account", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/account" + ] + }, + { + "type": "attributeDefinition", + "name": "isPrimary", + "parent": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social", + "definition": "resolvedFrom/Social/hasAttributes/isPrimary", + "contents": [ + "Resolved_BusinessPerson_structured/hasAttributes/socialKind/members/isPrimary" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "emailKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind", + "members": [ + { + "name": "emailId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/emailId", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/address", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/emailKind/Email/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "phoneKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind", + "members": [ + { + "name": "phoneId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/phoneId", + "dataFormat": "Int32" + }, + { + "name": "number", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/number", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/phoneKind/Phone/isPrimary", + "dataFormat": "Boolean" + } + ] + } + }, + { + "attributeGroupReference": { + "attributeGroupName": "socialKind", + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind", + "members": [ + { + "name": "socialId", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/socialId", + "dataFormat": "Int32" + }, + { + "name": "account", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/account", + "dataFormat": "String" + }, + { + "name": "isPrimary", + "appliedTraits": [ + "is.dataFormat.boolean" + ], + "attributeContext": "Resolved_BusinessPerson_structured/attributeContext/Resolved_BusinessPerson_structured/contactAt/projection/source/ContactKinds/socialKind/Social/isPrimary", + "dataFormat": "Boolean" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json new file mode 100644 index 0000000000..505dc92539 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/BusinessPerson.cdm.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "BusinessPerson", + "hasAttributes": [ + { + "name": "contactAt", + "isPolymorphicSource": true, + "entity": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "socialId", + "account" + ] + } + ], + "source": { + "entityReference": { + "entityName": "ContactKinds", + "hasAttributes": [ + { + "name": "emailKind", + "entity": "Email", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "phoneKind", + "entity": "Phone", + "resolutionGuidance": { + "renameFormat": "{m}" + } + }, + { + "name": "socialKind", + "entity": "Social", + "resolutionGuidance": { + "renameFormat": "{m}" + } + } + ] + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json new file mode 100644 index 0000000000..eb0dbc823a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Email.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Email", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "emailId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "address" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json new file mode 100644 index 0000000000..f237a5e23d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Phone.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Phone", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "phoneId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "number" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json new file mode 100644 index 0000000000..b943ead764 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/Social.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName" : "Social", + "hasAttributes": [ + { + "purpose": "identifiedBy", + "dataType": "integer", + "name": "socialId" + }, + { + "purpose": "hasA", + "dataType": "string", + "name": "account" + }, + { + "purpose": "hasA", + "dataType": "boolean", + "name": "isPrimary" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..0a09e81c87 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/_allImports.cdm.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Email.cdm.json" + }, + { + "corpusPath": "Phone.cdm.json" + }, + { + "corpusPath": "Social.cdm.json" + }, + { + "corpusPath": "BusinessPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..1acbd892db --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestPolymorphicProj/Input/default.manifest.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + } + ], + "manifestName": "PersonContact", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Email", + "entityPath": "Email.cdm.json/Email" + }, + { + "type": "LocalEntity", + "entityName": "Phone", + "entityPath": "Phone.cdm.json/Phone" + }, + { + "type": "LocalEntity", + "entityName": "Social", + "entityPath": "Social.cdm.json/Social" + }, + { + "type": "LocalEntity", + "entityName": "BusinessPerson", + "entityPath": "BusinessPerson.cdm.json/BusinessPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..d29efce605 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..b7ddf27b38 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..18e58c7c72 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..67a0db86d6 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..9ea535b310 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..96f03ce507 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..27551e14b2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..c769fee3f3 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,17 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..6125d3161e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..27241ede7d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..91a8a24c34 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..698cffbe26 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..4c7e071ff2 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoName" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/PersonInfoAge" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "PersonInfoName", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "PersonInfoAge", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..455731e731 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..c0a6fc7340 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..0983b02b7d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,167 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/address" + ] + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/phoneNumber" + ] + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/email" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + }, + { + "name": "address", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address", + "dataFormat": "String" + }, + { + "name": "phoneNumber", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber", + "dataFormat": "String" + }, + { + "name": "email", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email", + "dataFormat": "String" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..36190779f0 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/NewPerson.cdm.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "PersonInfoAddress", + "PersonInfoPhoneNumber", + "PersonInfoEmail" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSAN/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..361d8cec5c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/name +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/age +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..9176b98b8c --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/name +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/age +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..e8d2e7055d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..27b209abde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..421a22988e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,26 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/name +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/age +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0 +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..ef7aaa7187 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..893733ccff --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..9bc814b201 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,14 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age/Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/PersonInfo/(ref) diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..fee00cee12 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..6e99bf2c24 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..62e3a6c4aa --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..057aa581c5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..eb02b901c8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,146 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name" + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age" + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + } + ] + }, + { + "type": "generatedSet", + "name": "_generatedAttributeSet", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "contents": [ + { + "type": "generatedRound", + "name": "_generatedAttributeRound0", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet", + "contents": [ + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/_generatedAttributeSet/_generatedAttributeRound0/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..92e2f2d32a --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..00ac14e06d --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..b879f69aec --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,128 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/PersonInfo/members/age" + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "attributeGroupReference": { + "attributeGroupName": "PersonInfo", + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "members": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/Person/age", + "dataFormat": "Int32" + } + ] + } + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..d737c65347 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/NewPerson.cdm.json @@ -0,0 +1,32 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": "Person", + "resolutionGuidance": { + "renameFormat": "{m}", + "selectsSubAttribute": { + "selects": "some", + "selectsSomeAvoidNames": [ + "address", + "phoneNumber", + "email" + ] + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSSANRename/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt new file mode 100644 index 0000000000..6033a16a90 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_default.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_default/hasAttributes/name/(ref) +Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_default/hasAttributes/age/(ref) +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_default.cdm.json/Resolved_NewPerson_default/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt new file mode 100644 index 0000000000..a599777fe3 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized.cdm.json/Resolved_NewPerson_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt new file mode 100644 index 0000000000..87e533abde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_normalized_structured.cdm.json/Resolved_NewPerson_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt new file mode 100644 index 0000000000..ed9a874617 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly.cdm.json/Resolved_NewPerson_referenceOnly/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt new file mode 100644 index 0000000000..aef9bf0cab --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized.cdm.json/Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt new file mode 100644 index 0000000000..c6deb403d8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_normalized_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_normalized_structured.cdm.json/Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt new file mode 100644 index 0000000000..fc49d9bba8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_referenceOnly_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name/(ref) +Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_referenceOnly_structured.cdm.json/Resolved_NewPerson_referenceOnly_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt new file mode 100644 index 0000000000..af5466cc19 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/AttrCtx_NewPerson_structured.txt @@ -0,0 +1,32 @@ +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends/CdmEntity +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/address +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/phoneNumber +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/email +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name/Resolved_NewPerson_structured/hasAttributes/name/(ref) +Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age/Resolved_NewPerson_structured/hasAttributes/age/(ref) +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/name +is.dataFormat.character +is.dataFormat.big +is.dataFormat.array +is.dataFormat.character +is.dataFormat.array +output:/Resolved_NewPerson_structured.cdm.json/Resolved_NewPerson_structured/hasAttributes/age +is.dataFormat.integer +is.dataFormat.integer diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json new file mode 100644 index 0000000000..3637ced643 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_default.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_default", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_default/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_default/attributeContext/Resolved_NewPerson_default/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json new file mode 100644 index 0000000000..f9068f1663 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized/attributeContext/Resolved_NewPerson_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json new file mode 100644 index 0000000000..9167121ea5 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_normalized_structured/attributeContext/Resolved_NewPerson_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json new file mode 100644 index 0000000000..72481caa02 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly/attributeContext/Resolved_NewPerson_referenceOnly/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json new file mode 100644 index 0000000000..b9f451e757 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized/attributeContext/Resolved_NewPerson_referenceOnly_normalized/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json new file mode 100644 index 0000000000..cf6cae27c8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_normalized_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_normalized_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_normalized_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_normalized_structured/attributeContext/Resolved_NewPerson_referenceOnly_normalized_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json new file mode 100644 index 0000000000..7ff32587fe --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_referenceOnly_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_referenceOnly_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_referenceOnly_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_referenceOnly_structured/attributeContext/Resolved_NewPerson_referenceOnly_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json new file mode 100644 index 0000000000..9bd71210bf --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/ExpectedOutput/_NewPerson_structured.cdm.json @@ -0,0 +1,195 @@ +{ + "jsonSchemaSemanticVersion": "1.0.0", + "imports": [ + { + "corpusPath": "local:/NewPerson.cdm.json", + "moniker": "resolvedFrom" + } + ], + "definitions": [ + { + "entityName": "Resolved_NewPerson_structured", + "attributeContext": { + "type": "entity", + "name": "Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "PersonInfo", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "projection", + "name": "projection", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/NewPerson/hasAttributes/PersonInfo/entity/projection", + "contents": [ + { + "type": "source", + "name": "source", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection", + "contents": [ + { + "type": "entity", + "name": "Person", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source", + "definition": "resolvedFrom/Person", + "contents": [ + { + "type": "entityReferenceExtends", + "name": "extends", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "contents": [ + { + "type": "entity", + "name": "CdmEntity", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/extends", + "definition": "resolvedFrom/CdmEntity" + } + ] + }, + { + "type": "attributeDefinition", + "name": "address", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/address" + }, + { + "type": "attributeDefinition", + "name": "phoneNumber", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/phoneNumber" + }, + { + "type": "attributeDefinition", + "name": "email", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/email" + }, + { + "type": "attributeDefinition", + "name": "name", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/name", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/name" + ] + }, + { + "type": "attributeDefinition", + "name": "age", + "parent": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person", + "definition": "resolvedFrom/Person/hasAttributes/age", + "contents": [ + "Resolved_NewPerson_structured/hasAttributes/age" + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "hasAttributes": [ + { + "name": "name", + "appliedTraits": [ + "is.dataFormat.character", + "is.dataFormat.big", + "is.dataFormat.array" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/name", + "dataFormat": "String" + }, + { + "name": "age", + "appliedTraits": [ + "is.dataFormat.integer" + ], + "attributeContext": "Resolved_NewPerson_structured/attributeContext/Resolved_NewPerson_structured/PersonInfo/projection/source/projection/source/projection/source/projection/source/projection/source/Person/age", + "dataFormat": "Int32" + } + ], + "version": "1.1" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json new file mode 100644 index 0000000000..a88d635959 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/NewPerson.cdm.json @@ -0,0 +1,41 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "NewPerson", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "PersonInfo", + "entity": { + "source": { + "source": { + "operations": [ + { + "$type": "excludeAttributes", + "excludeAttributes": [ + "address", + "phoneNumber", + "email" + ] + } + ], + "source": { + "source": { + "source": "Person" + } + } + } + } + } + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json new file mode 100644 index 0000000000..3e5d5f23f8 --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/Person.cdm.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "_allImports.cdm.json" + } + ], + "definitions": [ + { + "entityName": "Person", + "extendsEntity": "CdmEntity", + "hasAttributes": [ + { + "name": "name", + "dataType": "string" + }, + { + "name": "age", + "dataType": "integer" + }, + { + "name": "address", + "dataType": "string" + }, + { + "name": "phoneNumber", + "dataType": "string" + }, + { + "name": "email", + "dataType": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json new file mode 100644 index 0000000000..88c2f9678e --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/_allImports.cdm.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "imports": [ + { + "corpusPath": "cdm:/foundations.cdm.json" + }, + { + "corpusPath": "Person.cdm.json" + }, + { + "corpusPath": "NewPerson.cdm.json" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json new file mode 100644 index 0000000000..2e5f04dbde --- /dev/null +++ b/objectModel/TypeScript/__test__/TestData/Cdm/Projection/TestProjectionExclude/TestSingleNestedProj/Input/default.manifest.cdm.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../../../../../../../../schemaDocuments/schema.cdm.json", + "jsonSchemaSemanticVersion": "1.1.0", + "manifestName": "default.manifest.cdm.json", + "entities": [ + { + "type": "LocalEntity", + "entityName": "Person", + "entitySchema": "Person.cdm.json/Person" + }, + { + "type": "LocalEntity", + "entityName": "NewPerson", + "entitySchema": "NewPerson.cdm.json/NewPerson" + } + ] +} \ No newline at end of file diff --git a/objectModel/TypeScript/__test__/testStorageAdapter.ts b/objectModel/TypeScript/__test__/testStorageAdapter.ts index 247fa98a80..7d41f2c0bc 100644 --- a/objectModel/TypeScript/__test__/testStorageAdapter.ts +++ b/objectModel/TypeScript/__test__/testStorageAdapter.ts @@ -1,13 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -import { StorageAdapter } from '../Storage/StorageAdapter'; +import { StorageAdapterBase } from '../Storage/StorageAdapterBase'; -export class TestStorageAdapter implements StorageAdapter { +export class TestStorageAdapter extends StorageAdapterBase { public readonly target: Map; public locationHint: string; constructor(target: Map) { + super(); this.target = target; } @@ -29,38 +30,4 @@ export class TestStorageAdapter implements StorageAdapter { return corpusPath; } - - public canRead(): boolean { - return false; - } - - public clearCache(): void { - } - - public async fetchAllFilesAsync(folderCorpusPath: string): Promise { - return undefined; - } - - public async getLastModifiedTime(adapterPath: string): Promise { - return undefined; - } - - public createCorpusPath(adapterPath: string): string { - return undefined; - } - - public async readAsync(corpusPath: string): Promise { - return undefined; - } - - public async computeLastModifiedTimeAsync(corpusPath: string): Promise { - return undefined; - } - - public fetchConfig(): string { - return ''; - } - - public updateConfig(configs: string): void { - } } diff --git a/objectModel/TypeScript/__test__/testUtils.ts b/objectModel/TypeScript/__test__/testUtils.ts index 636b60a889..4e37456ee8 100644 --- a/objectModel/TypeScript/__test__/testUtils.ts +++ b/objectModel/TypeScript/__test__/testUtils.ts @@ -8,20 +8,49 @@ import { export const testUtils = { /** - * A function to resolve an entity + * Resolves an entity + * @param corpus The corpus + * @param inputEntity The entity to resolve + * @param resolutionOptions The resolution options + * @param addResOptToName Whether to add the resolution options as part of the resolved entity name */ - getResolvedEntity: async (corpus: CdmCorpusDefinition, inputEntity: CdmEntityDefinition, resolutionOptions: string[]): Promise => { + getResolvedEntity: async (corpus: CdmCorpusDefinition, inputEntity: CdmEntityDefinition, resolutionOptions: string[], addResOptToName: boolean = false): Promise => { const roHashSet: Set = new Set(); for (let i: number = 0; i < resolutionOptions.length; i++) { roHashSet.add(resolutionOptions[i]); } - const resolvedEntityName: string = `Resolved_${inputEntity.entityName}`; + let resolvedEntityName: string = ''; + + if (addResOptToName) { + const fileNameSuffix: string = testUtils.getResolutionOptionNameSuffix(resolutionOptions); + resolvedEntityName = `Resolved_${inputEntity.entityName}${fileNameSuffix}`; + } else { + resolvedEntityName = `Resolved_${inputEntity.entityName}`; + } + const ro: resolveOptions = new resolveOptions(inputEntity.inDocument, new AttributeResolutionDirectiveSet(roHashSet)); const resolvedFolder: CdmFolderDefinition = corpus.storage.fetchRootFolder('output'); const resolvedEntity: CdmEntityDefinition = await inputEntity.createResolvedEntityAsync(resolvedEntityName, ro, resolvedFolder); return resolvedEntity; + }, + /** + * Returns a suffix that contains the file name and resolution option used + * @param resolutionOptions The resolution options + */ + getResolutionOptionNameSuffix(resolutionOptions: string[]): string { + let fileNamePrefix: string = ''; + + for (let i: number = 0; i < resolutionOptions.length; i++) { + fileNamePrefix = `${fileNamePrefix}_${resolutionOptions[i]}`; + } + + if (!fileNamePrefix) { + fileNamePrefix = '_default'; + } + + return fileNamePrefix; } -} \ No newline at end of file +} diff --git a/objectModel/TypeScript/package-lock.json b/objectModel/TypeScript/package-lock.json index e69a071c24..402e8ac7b9 100644 --- a/objectModel/TypeScript/package-lock.json +++ b/objectModel/TypeScript/package-lock.json @@ -1,6 +1,6 @@ { "name": "cdm.objectmodel", - "version": "1.0.9", + "version": "1.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/objectModel/TypeScript/package.json b/objectModel/TypeScript/package.json index 30cdeb6816..4fef2d504a 100644 --- a/objectModel/TypeScript/package.json +++ b/objectModel/TypeScript/package.json @@ -1,6 +1,6 @@ { "name": "cdm.objectmodel", - "version": "1.0.9", + "version": "1.0.10", "description": "The typescript object model for CDM.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -26,6 +26,7 @@ }, "author": "Microsoft Corporation", "jest": { + "testTimeout": 10000, "transform": { ".(ts|tsx)": "ts-jest" }, diff --git a/samples/4-read-local-save-adls/code-ts/package.json b/samples/4-read-local-save-adls/code-ts/package.json index 12fd6b7ce6..a3d7c1c7be 100644 --- a/samples/4-read-local-save-adls/code-ts/package.json +++ b/samples/4-read-local-save-adls/code-ts/package.json @@ -1,6 +1,6 @@ { "name": "read-local-save-adls", - "version": "1.0.9", + "version": "1.0.10", "description": "Sample application which uses CommonDataModel Object Model library to read a manifest from a local file-system, make changes to its content and save it to ADLSg2 location.", "main": "index.js", "scripts": { diff --git a/samples/7-search-partition-pattern/code-cs/search-partition-pattern/Program.cs b/samples/7-search-partition-pattern/code-cs/search-partition-pattern/Program.cs index 5c4748ffb9..8af76a89c5 100644 --- a/samples/7-search-partition-pattern/code-cs/search-partition-pattern/Program.cs +++ b/samples/7-search-partition-pattern/code-cs/search-partition-pattern/Program.cs @@ -67,7 +67,7 @@ static async Task Main(string[] args) // Create a data partition pattern var dataPartitionPattern = cdmCorpus.MakeObject(CdmObjectType.DataPartitionPatternDef, "sampleDataPartitionPattern", false); - dataPartitionPattern.RootLocation = "local:dataFiles"; + dataPartitionPattern.RootLocation = "dataFiles"; dataPartitionPattern.RegularExpression = "/(\\d{4})/(\\w+)/cohort(\\d+)\\.csv$"; // the line below demonstrates using "GlobPattern" which can be used instead of "RegularExpression" // dataPartitionPattern.GlobPattern = "/*/cohort*.csv"; diff --git a/samples/7-search-partition-pattern/code-java/src/main/java/example/Program.java b/samples/7-search-partition-pattern/code-java/src/main/java/example/Program.java index 6300baff73..cb1fbf01da 100644 --- a/samples/7-search-partition-pattern/code-java/src/main/java/example/Program.java +++ b/samples/7-search-partition-pattern/code-java/src/main/java/example/Program.java @@ -96,7 +96,7 @@ public static void main(String[] args) { CdmObjectType.DataPartitionPatternDef, "sampleDataPartitionPattern", false); - dataPartitionPattern.setRootLocation("local:dataFiles"); + dataPartitionPattern.setRootLocation("dataFiles"); dataPartitionPattern.setRegularExpression("/(\\d{4})/(\\w+)/cohort(\\d+)\\.csv$"); // the line below demonstrates using "GlobPattern" which can be used instead of "RegularExpression" // dataPartitionPattern.setGlobPattern("/*/cohort*.csv"); diff --git a/samples/pom.xml b/samples/pom.xml index 550fee48fa..23ebe99ba8 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -5,7 +5,7 @@ - 1.0.9 + 1.0.10 example